コード例 #1
0
ファイル: HashCalculator.php プロジェクト: lucien144/Restful
 /**
  * Calculates hash
  * @param IInput $input
  * @return string
  *
  * @throws \Drahak\Restful\InvalidStateException
  */
 public function calculate(IInput $input)
 {
     if (!$this->privateKey) {
         throw new InvalidStateException('Private key is not set');
     }
     $dataString = $this->mapper->stringify($input->getData());
     return hash_hmac(self::HASH, $dataString, $this->privateKey);
 }
コード例 #2
0
ファイル: InputFactory.php プロジェクト: drahak/restful
 /**
  * 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;
 }