[bugfix] Fix NegotiateAccept with multi accept

There's a bug in Gin's NegotiateFormat that doesn't handle the presence
of multilpe accept headers. This lifts the code from the PR @tsmethurst
sent a year ago to Gin into our codebase to fix the issue.
This commit is contained in:
Daniele Sluijters 2023-05-16 13:06:33 +02:00
commit 7050112af1
4 changed files with 122 additions and 3 deletions

View file

@ -90,7 +90,7 @@ func (m *Module) threadGETHandler(c *gin.Context) {
// if we're getting an AP request on this endpoint we
// should render the status's AP representation instead
accept := c.NegotiateFormat(string(apiutil.TextHTML), string(apiutil.AppActivityJSON), string(apiutil.AppActivityLDJSON))
accept := apiutil.NegotiateFormat(c, string(apiutil.TextHTML), string(apiutil.AppActivityJSON), string(apiutil.AppActivityLDJSON))
if accept == string(apiutil.AppActivityJSON) || accept == string(apiutil.AppActivityLDJSON) {
m.returnAPStatus(ctx, c, username, statusID, accept)
return