/**
* Parse request body if any
* @return array|\Traversable
*
* @throws BadRequestException
*/
protected function parseRequestBody()
{
$requestBody = array();
$input = class_exists('Nette\\Framework') && Nette\Framework::VERSION_ID <= 20200 ? file_get_contents('php://input') : $this->httpRequest->getRawBody();
if ($input) {
try {
$this->mapper = $this->mapperContext->getMapper($this->httpRequest->getHeader('Content-Type'));
$requestBody = $this->mapper->parse($input);
} catch (InvalidStateException $e) {
throw BadRequestException::unsupportedMediaType('No mapper defined for Content-Type ' . $this->httpRequest->getHeader('Content-Type'), $e);
} catch (MappingException $e) {
throw new BadRequestException($e->getMessage(), 400, $e);
}
}
return $requestBody;
}