11
11
12
12
namespace Tobyz \JsonApiServer ;
13
13
14
+ use HttpAccept \AcceptParser ;
14
15
use JsonApiPhp \JsonApi \ErrorDocument ;
15
16
use Psr \Http \Message \ResponseInterface as Response ;
16
17
use Psr \Http \Message \ServerRequestInterface as Request ;
26
27
use Tobyz \JsonApiServer \Exception \UnsupportedMediaTypeException ;
27
28
use Tobyz \JsonApiServer \Extension \Extension ;
28
29
use Tobyz \JsonApiServer \Schema \Concerns \HasMeta ;
29
- use Xynha \HttpAccept \AcceptParser ;
30
30
31
31
final class JsonApi implements RequestHandlerInterface
32
32
{
@@ -236,13 +236,13 @@ private function getContentTypeExtensionUris(Request $request): array
236
236
throw new UnsupportedMediaTypeException ();
237
237
}
238
238
239
- $ parameters = $ this -> parseParameters ( $ mediaType ->parameters () );
239
+ $ parameters = $ mediaType ->parameter ( );
240
240
241
- if (! empty (array_diff (array_keys ($ parameters ), ['ext ' , 'profile ' ]))) {
241
+ if (! empty (array_diff (array_keys ($ parameters-> all () ), ['ext ' , 'profile ' ]))) {
242
242
throw new UnsupportedMediaTypeException ();
243
243
}
244
244
245
- $ extensionUris = isset ( $ parameters[ 'ext ' ] ) ? explode (' ' , $ parameters[ 'ext ' ] ) : [];
245
+ $ extensionUris = $ parameters-> has ( 'ext ' ) ? explode (' ' , $ parameters-> get ( 'ext ' ) ) : [];
246
246
247
247
if (! empty (array_diff ($ extensionUris , array_keys ($ this ->extensions )))) {
248
248
throw new UnsupportedMediaTypeException ();
@@ -264,13 +264,13 @@ private function getAcceptableExtensionUris(Request $request): array
264
264
continue ;
265
265
}
266
266
267
- $ parameters = $ this -> parseParameters ( $ mediaType ->parameters () );
267
+ $ parameters = $ mediaType ->parameter ( );
268
268
269
- if (! empty (array_diff (array_keys ($ parameters ), ['ext ' , 'profile ' ]))) {
269
+ if (! empty (array_diff (array_keys ($ parameters-> all () ), ['ext ' , 'profile ' ]))) {
270
270
continue ;
271
271
}
272
272
273
- $ extensionUris = isset ( $ parameters[ 'ext ' ] ) ? explode (' ' , $ parameters[ 'ext ' ] ) : [];
273
+ $ extensionUris = $ parameters-> has ( 'ext ' ) ? explode (' ' , $ parameters-> get ( 'ext ' ) ) : [];
274
274
275
275
if (! empty (array_diff ($ extensionUris , array_keys ($ this ->extensions )))) {
276
276
continue ;
@@ -282,15 +282,6 @@ private function getAcceptableExtensionUris(Request $request): array
282
282
throw new NotAcceptableException ();
283
283
}
284
284
285
- private function parseParameters (array $ parameters ): array
286
- {
287
- return array_reduce ($ parameters , function ($ a , $ v ) {
288
- $ parts = explode ('= ' , $ v , 2 );
289
- $ a [$ parts [0 ]] = trim ($ parts [1 ], '" ' );
290
- return $ a ;
291
- }, []);
292
- }
293
-
294
285
/**
295
286
* Convert an exception into a JSON:API error document response.
296
287
*
0 commit comments