Fix dependency on `http-accept` now that a version has been tagged
This commit is contained in:
parent
6183f012f6
commit
3f63e2db31
|
|
@ -9,7 +9,7 @@
|
||||||
"nyholm/psr7": "^1.3",
|
"nyholm/psr7": "^1.3",
|
||||||
"psr/http-message": "^1.0",
|
"psr/http-message": "^1.0",
|
||||||
"psr/http-server-handler": "^1.0",
|
"psr/http-server-handler": "^1.0",
|
||||||
"xynha/http-accept": "dev-master#b712d4ae64ca53fa835667fda73605ae16cddcbb"
|
"hnet/http-accept": "^0.1"
|
||||||
},
|
},
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"authors": [
|
"authors": [
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
namespace Tobyz\JsonApiServer;
|
namespace Tobyz\JsonApiServer;
|
||||||
|
|
||||||
|
use HttpAccept\AcceptParser;
|
||||||
use JsonApiPhp\JsonApi\ErrorDocument;
|
use JsonApiPhp\JsonApi\ErrorDocument;
|
||||||
use Psr\Http\Message\ResponseInterface as Response;
|
use Psr\Http\Message\ResponseInterface as Response;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
|
|
@ -26,7 +27,6 @@ use Tobyz\JsonApiServer\Exception\ResourceNotFoundException;
|
||||||
use Tobyz\JsonApiServer\Exception\UnsupportedMediaTypeException;
|
use Tobyz\JsonApiServer\Exception\UnsupportedMediaTypeException;
|
||||||
use Tobyz\JsonApiServer\Extension\Extension;
|
use Tobyz\JsonApiServer\Extension\Extension;
|
||||||
use Tobyz\JsonApiServer\Schema\Concerns\HasMeta;
|
use Tobyz\JsonApiServer\Schema\Concerns\HasMeta;
|
||||||
use Xynha\HttpAccept\AcceptParser;
|
|
||||||
|
|
||||||
final class JsonApi implements RequestHandlerInterface
|
final class JsonApi implements RequestHandlerInterface
|
||||||
{
|
{
|
||||||
|
|
@ -236,13 +236,13 @@ final class JsonApi implements RequestHandlerInterface
|
||||||
throw new UnsupportedMediaTypeException();
|
throw new UnsupportedMediaTypeException();
|
||||||
}
|
}
|
||||||
|
|
||||||
$parameters = $this->parseParameters($mediaType->parameters());
|
$parameters = $mediaType->parameter();
|
||||||
|
|
||||||
if (! empty(array_diff(array_keys($parameters), ['ext', 'profile']))) {
|
if (! empty(array_diff(array_keys($parameters->all()), ['ext', 'profile']))) {
|
||||||
throw new UnsupportedMediaTypeException();
|
throw new UnsupportedMediaTypeException();
|
||||||
}
|
}
|
||||||
|
|
||||||
$extensionUris = isset($parameters['ext']) ? explode(' ', $parameters['ext']) : [];
|
$extensionUris = $parameters->has('ext') ? explode(' ', $parameters->get('ext')) : [];
|
||||||
|
|
||||||
if (! empty(array_diff($extensionUris, array_keys($this->extensions)))) {
|
if (! empty(array_diff($extensionUris, array_keys($this->extensions)))) {
|
||||||
throw new UnsupportedMediaTypeException();
|
throw new UnsupportedMediaTypeException();
|
||||||
|
|
@ -264,13 +264,13 @@ final class JsonApi implements RequestHandlerInterface
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$parameters = $this->parseParameters($mediaType->parameters());
|
$parameters = $mediaType->parameter();
|
||||||
|
|
||||||
if (! empty(array_diff(array_keys($parameters), ['ext', 'profile']))) {
|
if (! empty(array_diff(array_keys($parameters->all()), ['ext', 'profile']))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$extensionUris = isset($parameters['ext']) ? explode(' ', $parameters['ext']) : [];
|
$extensionUris = $parameters->has('ext') ? explode(' ', $parameters->get('ext')) : [];
|
||||||
|
|
||||||
if (! empty(array_diff($extensionUris, array_keys($this->extensions)))) {
|
if (! empty(array_diff($extensionUris, array_keys($this->extensions)))) {
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -282,15 +282,6 @@ final class JsonApi implements RequestHandlerInterface
|
||||||
throw new NotAcceptableException();
|
throw new NotAcceptableException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function parseParameters(array $parameters): array
|
|
||||||
{
|
|
||||||
return array_reduce($parameters, function ($a, $v) {
|
|
||||||
$parts = explode('=', $v, 2);
|
|
||||||
$a[$parts[0]] = trim($parts[1], '"');
|
|
||||||
return $a;
|
|
||||||
}, []);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert an exception into a JSON:API error document response.
|
* Convert an exception into a JSON:API error document response.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue