/** * @inheritdoc */ public function parse(CurrentRequestInterface $request, ExceptionThrowerInterface $exceptionThrower) { $this->exceptionThrower = $exceptionThrower; $acceptHeader = null; $contentTypeHeader = null; try { $contentType = $request->getHeader(HeaderInterface::HEADER_CONTENT_TYPE); $contentTypeHeader = Header::parse(empty($contentType) === true ? MediaTypeInterface::JSON_API_MEDIA_TYPE : $contentType, HeaderInterface::HEADER_CONTENT_TYPE); } catch (InvalidArgumentException $exception) { $this->exceptionThrower->throwBadRequest(); } try { $headerString = $request->getHeader(HeaderInterface::HEADER_ACCEPT); if (empty($headerString) === false) { $acceptHeader = AcceptHeader::parse($headerString); } else { $jsonMediaType = $this->factory->createAcceptMediaType(0, MediaTypeInterface::JSON_API_TYPE, MediaTypeInterface::JSON_API_SUB_TYPE); $acceptHeader = $this->factory->createAcceptHeader([$jsonMediaType]); } } catch (InvalidArgumentException $exception) { $this->exceptionThrower->throwBadRequest(); } $parameters = $request->getQueryParameters(); return $this->factory->createParameters($contentTypeHeader, $acceptHeader, $this->getIncludePaths($parameters), $this->getFieldSets($parameters), $this->getSortParameters($parameters), $this->getPagingParameters($parameters), $this->getFilteringParameters($parameters), $this->getUnrecognizedParameters($parameters)); }
/** * @inheritdoc * * @return AcceptHeaderInterface */ public static function parse($header, $accept = self::HEADER_ACCEPT) { return parent::parse($header, self::HEADER_ACCEPT); }