From 3f63e2db31cf1e6eb7078fcef1b97208b2b66898 Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Fri, 3 Sep 2021 09:49:23 +1000 Subject: [PATCH] Fix dependency on `http-accept` now that a version has been tagged --- composer.json | 2 +- src/JsonApi.php | 23 +++++++---------------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/composer.json b/composer.json index 51a6ec4..be02b84 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,7 @@ "nyholm/psr7": "^1.3", "psr/http-message": "^1.0", "psr/http-server-handler": "^1.0", - "xynha/http-accept": "dev-master#b712d4ae64ca53fa835667fda73605ae16cddcbb" + "hnet/http-accept": "^0.1" }, "license": "MIT", "authors": [ diff --git a/src/JsonApi.php b/src/JsonApi.php index 84f1257..d2dc882 100644 --- a/src/JsonApi.php +++ b/src/JsonApi.php @@ -11,6 +11,7 @@ namespace Tobyz\JsonApiServer; +use HttpAccept\AcceptParser; use JsonApiPhp\JsonApi\ErrorDocument; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; @@ -26,7 +27,6 @@ use Tobyz\JsonApiServer\Exception\ResourceNotFoundException; use Tobyz\JsonApiServer\Exception\UnsupportedMediaTypeException; use Tobyz\JsonApiServer\Extension\Extension; use Tobyz\JsonApiServer\Schema\Concerns\HasMeta; -use Xynha\HttpAccept\AcceptParser; final class JsonApi implements RequestHandlerInterface { @@ -236,13 +236,13 @@ final class JsonApi implements RequestHandlerInterface 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(); } - $extensionUris = isset($parameters['ext']) ? explode(' ', $parameters['ext']) : []; + $extensionUris = $parameters->has('ext') ? explode(' ', $parameters->get('ext')) : []; if (! empty(array_diff($extensionUris, array_keys($this->extensions)))) { throw new UnsupportedMediaTypeException(); @@ -264,13 +264,13 @@ final class JsonApi implements RequestHandlerInterface 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; } - $extensionUris = isset($parameters['ext']) ? explode(' ', $parameters['ext']) : []; + $extensionUris = $parameters->has('ext') ? explode(' ', $parameters->get('ext')) : []; if (! empty(array_diff($extensionUris, array_keys($this->extensions)))) { continue; @@ -282,15 +282,6 @@ final class JsonApi implements RequestHandlerInterface 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. *