コード例 #1
0
ファイル: RequestFactory.php プロジェクト: jdgriffith/apai-io
 /**
  * Creates a new Requestobject
  *
  * @param ConfigurationInterface $configuration The configurationobject
  *
  * @return \ApaiIO\Request\RequestInterface
  */
 public static function createRequest(ConfigurationInterface $configuration)
 {
     $class = $configuration->getRequest();
     $factoryCallback = $configuration->getRequestFactory();
     if (true === is_object($class) && $class instanceof \ApaiIO\Request\RequestInterface) {
         $class->setConfiguration($configuration);
         return self::applyCallback($factoryCallback, $class);
     }
     if (true === is_string($class) && true === array_key_exists($class, self::$requestObjects)) {
         $request = self::$requestObjects[$class];
         $request->setConfiguration($configuration);
         return self::applyCallback($factoryCallback, $request);
     }
     try {
         $reflectionClass = new \ReflectionClass($class);
     } catch (\ReflectionException $e) {
         throw new \InvalidArgumentException(sprintf("Requestclass not found: %s", $class));
     }
     if ($reflectionClass->implementsInterface('\\ApaiIO\\Request\\RequestInterface')) {
         $request = new $class();
         $request->setConfiguration($configuration);
         return self::$requestObjects[$class] = self::applyCallback($factoryCallback, $request);
     }
     throw new \LogicException(sprintf("Requestclass does not implements the RequestInterface: %s", $class));
 }
コード例 #2
0
ファイル: ApaiIO.php プロジェクト: exeu/apai-io
 /**
  * Applies a responsetransformer.
  *
  * @param mixed $response The response of the request
  *
  * @return mixed
  */
 protected function applyResponseTransformer($response)
 {
     if (null === ($responseTransformer = $this->configuration->getResponseTransformer())) {
         return $response;
     }
     return $responseTransformer->transform($response);
 }
コード例 #3
0
ファイル: ApaiIO.php プロジェクト: jdgriffith/apai-io
 /**
  * Applies a responsetransformer
  *
  * @param mixed                  $response      The response of the request
  * @param ConfigurationInterface $configuration The configurationobject
  *
  * @return mixed
  */
 protected function applyResponseTransformer($response, ConfigurationInterface $configuration)
 {
     if (true === is_null($configuration->getResponseTransformer())) {
         return $response;
     }
     $responseTransformer = ResponseTransformerFactory::createResponseTransformer($configuration);
     return $responseTransformer->transform($response);
 }
コード例 #4
0
ファイル: GuzzleRequest.php プロジェクト: exeu/apai-io
 /**
  * Builds the final querystring including the signature
  *
  * @param array                  $params
  * @param ConfigurationInterface $configuration
  *
  * @return string
  */
 protected function buildQueryString(array $params, ConfigurationInterface $configuration)
 {
     $parameterList = [];
     foreach ($params as $key => $value) {
         $parameterList[] = sprintf('%s=%s', $key, rawurlencode($value));
     }
     $parameterList[] = 'Signature=' . rawurlencode($this->buildSignature($parameterList, $configuration->getCountry(), $configuration->getSecretKey()));
     return implode("&", $parameterList);
 }
コード例 #5
0
ファイル: Request.php プロジェクト: finedesignz/apai-io2
 /**
  * Calculates the signature for the request
  *
  * @param array $params
  *
  * @return string
  */
 protected function buildSignature(array $params)
 {
     $template = "GET\nwebservices.amazon.%s\n/onca/xml\n%s";
     return Util::buildSignature(sprintf($template, $this->configuration->getCountry(), implode('&', $params)), $this->configuration->getSecretKey());
 }
コード例 #6
0
ファイル: Request.php プロジェクト: jdgriffith/apai-io
 /**
  * Calculates the signature for the request
  *
  * @param string $request
  *
  * @return string
  */
 protected function buildSignature($request)
 {
     return Util::buildSignature($request, $this->configuration->getSecretKey());
 }