Updated CreateShortCodeContentNegotiationMiddleware so that query parameter takes precedence over Accept header

This commit is contained in:
Alejandro Celaya 2018-05-07 11:17:10 +02:00
parent 7c6da4985d
commit b0dbb2dae4
2 changed files with 5 additions and 3 deletions

View file

@ -30,9 +30,10 @@ class CreateShortCodeContentNegotiationMiddleware implements MiddlewareInterface
return $response;
}
$acceptedType = $request->hasHeader('Accept')
? $this->determineAcceptTypeFromHeader($request->getHeaderLine('Accept'))
: $this->determineAcceptTypeFromQuery($request->getQueryParams());
$query = $request->getQueryParams();
$acceptedType = isset($query['format'])
? $this->determineAcceptTypeFromQuery($query)
: $this->determineAcceptTypeFromHeader($request->getHeaderLine('Accept'));
// If JSON was requested, return the response from next handler as is
if ($acceptedType === self::JSON) {

View file

@ -74,6 +74,7 @@ class CreateShortCodeContentNegotiationMiddlewareTest extends TestCase
['application/json', [], 'application/json'],
['application/xml', [], 'application/json'],
['text/plain', [], 'text/plain'],
['application/json', ['format' => 'txt'], 'text/plain'],
];
}