Example #1
0
 /**
  * Tests the setter and getter of this model
  * @test
  */
 public function setGet()
 {
     $errorMessage = "This is a error";
     $httpStatusCode = 200;
     $responseCode = 20000;
     $errorResponseArray = array('foo' => 'bar');
     $errorModel = new Error();
     $errorModel->setErrorMessage($errorMessage);
     $errorModel->setHttpStatusCode($httpStatusCode);
     $errorModel->setResponseCode($responseCode);
     $errorModel->setErrorResponseArray($errorResponseArray);
     $this->assertEquals($errorMessage, $errorModel->getErrorMessage());
     $this->assertEquals($httpStatusCode, $errorModel->getHttpStatusCode());
     $this->assertEquals($responseCode, $errorModel->getResponseCode());
     $this->assertEquals($errorResponseArray, $errorModel->getErrorResponseArray());
 }
Example #2
0
 /**
  * Generates an error model based on the provided response array
  * @param array $response
  * @return Error
  */
 private function _convertErrorToModel($response)
 {
     $errorModel = new Error();
     $httpStatusCode = isset($response['header']['status']) ? $response['header']['status'] : null;
     $errorModel->setHttpStatusCode($httpStatusCode);
     $responseCode = isset($response['body']['data']['response_code']) ? $response['body']['data']['response_code'] : null;
     $errorModel->setResponseCode($responseCode);
     $errorCode = 'Undefined Error. This should not happen!';
     if (isset($this->_errorCodes[$responseCode])) {
         $errorCode = $this->_errorCodes[$responseCode];
     }
     if (isset($response['body'])) {
         if (is_array($response['body'])) {
             if (isset($response['body']['error'])) {
                 if (is_array($response['body']['error'])) {
                     $errorCode = $this->getErrorMessageFromArray($response['body']['error']);
                 } elseif (is_string($response['body']['error'])) {
                     $errorCode = $response['body']['error'];
                 }
             }
         } elseif (is_string($response['body'])) {
             $json = json_decode($response['body']);
             $errorCode = $json->error;
         }
     }
     $errorModel->setErrorMessage($errorCode);
     return $errorModel;
 }
 /**
  * Generates an error model based on the provided response array
  * @param array $response
  * @param string $resourceName
  * @return Error
  */
 public function convertErrorToModel($response, $resourceName = null)
 {
     $errorModel = new Error();
     $httpStatusCode = isset($response['header']['status']) ? $response['header']['status'] : null;
     $errorModel->setHttpStatusCode($httpStatusCode);
     $responseCode = isset($response['body']['data']['response_code']) ? $response['body']['data']['response_code'] : null;
     $errorModel->setResponseCode($responseCode);
     $errorCode = 'Undefined Error. This should not happen!';
     if (isset($this->_errorCodes[$responseCode])) {
         $errorCode = $this->_errorCodes[$responseCode];
     }
     if (isset($resourceName) && isset($response['body']['data'])) {
         try {
             $errorModel->setRawObject($this->convertResponse($response['body']['data'], $resourceName));
         } catch (\Exception $e) {
         }
     }
     if (isset($response['body'])) {
         if (is_array($response['body'])) {
             if (isset($response['body']['error'])) {
                 if (is_array($response['body']['error'])) {
                     $errorCode = $this->getErrorMessageFromArray($response['body']['error']);
                 } elseif (is_string($response['body']['error'])) {
                     $errorCode = $response['body']['error'];
                 }
             }
         } elseif (is_string($response['body'])) {
             $json = json_decode($response['body']);
             $errorCode = $json->error;
         }
     }
     $errorModel->setErrorMessage($errorCode);
     return $errorModel;
 }
Example #4
0
 /**
  * Sends a request based on the provided request model and according to the argumented method
  * @param \Paymill\Models\Request\Base $model
  * @param string $method (Create, update, delete, getAll, getOne)
  * @throws PaymillException
  * @return \Paymill\Models\Response\Base|\Paymill\Models\Response\Error
  */
 private function _request(Base $model, $method)
 {
     if (!is_a($this->_connectionClass, '\\Paymill\\API\\CommunicationAbstract')) {
         throw new PaymillException(null, 'The connection class is missing!');
     }
     $convertedResponse = null;
     $httpMethod = $this->_getHTTPMethod($method);
     $parameter = $model->parameterize($method);
     $serviceResource = $model->getServiceResource() . $model->getId();
     if (is_a($model, "\\Paymill\\Models\\Request\\Transaction") && $method === "create") {
         $source = !array_key_exists('source', $parameter) ? "PhpLib" . $this->getVersion() : "PhpLib" . $this->getVersion() . "_" . $parameter['source'];
         $parameter['source'] = $source;
     }
     try {
         $this->_lastRequest = $parameter;
         $response = $this->_connectionClass->requestApi($serviceResource, $parameter, $httpMethod);
         var_dump($parameter);
         var_dump($response);
         $this->_lastResponse = $response;
         $responseHandler = new ResponseHandler();
         if ($method === "getAllAsModel" && $responseHandler->validateResponse($response) && $this->_util->isNumericArray($response['body']['data'])) {
             foreach ($response['body']['data'] as $object) {
                 $convertedResponse[] = $responseHandler->convertResponse($object, $model->getServiceResource());
             }
         } elseif ($method === "getAll" && $responseHandler->validateResponse($response)) {
             $convertedResponse = $response['body']['data'];
         } elseif ($responseHandler->validateResponse($response)) {
             $convertedResponse = $responseHandler->convertResponse($response['body']['data'], $model->getServiceResource());
         } else {
             $convertedResponse = $responseHandler->convertErrorToModel($response, $model->getServiceResource());
         }
     } catch (\Exception $e) {
         $errorModel = new Error();
         $convertedResponse = $errorModel->setErrorMessage($e->getMessage());
     }
     if (is_a($convertedResponse, '\\Paymill\\Models\\Response\\Error')) {
         throw new PaymillException($convertedResponse->getResponseCode(), $convertedResponse->getErrorMessage(), $convertedResponse->getHttpStatusCode(), $convertedResponse->getRawObject());
     }
     return $convertedResponse;
 }
Example #5
0
 /**
  * Sends a request based on the provided request model and according to the argumented method
  * @param \Paymill\Models\Request\Base $model
  * @param string $method (Create, update, delete, getAll, getOne)
  * @throws PaymillException
  * @return \Paymill\Models\Response\Base|\Paymill\Models\Response\Error
  */
 private function _request(Base $model, $method)
 {
     if (!is_a($this->_connectionClass, '\\Paymill\\API\\CommunicationAbstract')) {
         throw new PaymillException(null, 'The connenction class is missing!');
     }
     $httpMethod = $this->_getHTTPMethod($method);
     $parameter = $model->parameterize($method);
     $serviceResource = $model->getServiceResource() . $model->getId();
     try {
         $this->_lastRequest = $parameter;
         $response = $this->_connectionClass->requestApi($serviceResource, $parameter, $httpMethod);
         $this->_lastResponse = $response;
         $responseHandler = new ResponseHandler();
         if ($method === 'getAll') {
             if ($responseHandler->validateResponse($response)) {
                 $convertedResponse = $response['body']['data'];
             } else {
                 $convertedResponse = $responseHandler->convertResponse($response, $model->getServiceResource());
             }
         } else {
             $convertedResponse = $responseHandler->convertResponse($response, $model->getServiceResource());
         }
     } catch (Exception $e) {
         $errorModel = new Error();
         $convertedResponse = $errorModel->setErrorMessage($e->getMessage());
     }
     if (is_a($convertedResponse, '\\Paymill\\Models\\Response\\Error')) {
         throw new PaymillException($convertedResponse->getResponseCode(), $convertedResponse->getErrorMessage(), $convertedResponse->getHttpStatusCode());
     }
     return $convertedResponse;
 }