Ejemplo n.º 1
0
 /**
  * Set response.
  *
  * @param JsonResponse $response
  * @return $this
  */
 public function setResponse(JsonResponse $response)
 {
     $this->response = $response;
     if (!$response->getRequest()) {
         $response->setRequest($this);
     }
     return $this;
 }
Ejemplo n.º 2
0
 /**
  * Parser http response.
  *
  * @param string $http
  * @return JsonResponse[]|JsonResponse
  * @throws Exceptions\InvalidResponseException
  */
 protected function parserHttp($http)
 {
     $response = [];
     $json = json_decode($http, true);
     if (json_last_error() !== JSON_ERROR_NONE || empty($http)) {
         throw new Exceptions\InvalidResponseException('Invalid response from RPC server, must be valid json.');
     }
     /**
      * Create new JsonResponse
      *
      * @param $json
      * @return JsonResponse
      */
     $createJsonResponse = function ($json) {
         $id = null;
         $result = null;
         $error = ['code' => null, 'message' => null, 'data' => null];
         if (is_array($json) & array_key_exists('id', $json) & (array_key_exists('result', $json) || array_key_exists('error', $json))) {
             $id = $json['id'];
             $result = array_key_exists('result', $json) ? $json['result'] : null;
             if (array_key_exists('error', $json)) {
                 $error['code'] = array_key_exists('code', $json['error']) ? $json['error']['code'] : null;
                 $error['message'] = array_key_exists('message', $json['error']) ? $json['error']['message'] : null;
                 $error['data'] = array_key_exists('data', $json['error']) ? $json['error']['data'] : null;
             }
             $response = new JsonResponse();
             $response->setId($id);
             $response->setResult($result);
             $response->setErrorCode($error['code']);
             $response->setErrorMessage($error['message']);
             $response->setErrorData($error['data']);
             return $response;
         } else {
             throw new Exceptions\InvalidResponseException('Invalid response format from RPC server.');
         }
     };
     if (array_keys($json) === range(0, count($json) - 1)) {
         foreach ($json as $part) {
             $response[] = $createJsonResponse($part);
         }
     } else {
         $response = $createJsonResponse($json);
     }
     return $response;
 }