private function execute(AbstractRequestTransport $requestTransport, $responseType)
    {
        $response = $this->apiTransport->send(
            $requestTransport->getPath(),
            $requestTransport->getMethod(),
            $requestTransport->getQueryParams(),
            json_encode($requestTransport->getBody()),
            $requestTransport->getHeaders()
        );

        if ($response->getStatusCode() != 200) {
            $this->processError($response); // throw ResponseException
        }

        $responseData = json_decode($response->getBody(), true);

        if (!$responseData) {
            throw new JsonParseException('Decode response error', json_last_error());
        }

        return ResponseCreator::create($responseType, $responseData);
    }
private function execute(AbstractRequestTransport $requestTransport, $responseType)
    {
        $response = $this->apiTransport->send(
            $requestTransport->getPath(),
            $requestTransport->getMethod(),
            $requestTransport->getQueryParams(),
            json_encode($requestTransport->getBody()),
            $requestTransport->getHeaders()
        );

        if ($response->getStatusCode() != 200) {
            $this->processError($response); // throw ResponseException
        }

        $responseData = json_decode($response->getBody(), true);

        if (!$responseData) {
            throw new JsonParseException('Decode response error', json_last_error());
        }

        return ResponseCreator::create($responseType, $responseData);
    }
@param AbstractRequestTransport $requestTransport
@param string                   $responseType

@return AbstractResponse

@throws ResponseException
@throws TransportException
@throws ResponseParseException
@throws JsonParseException