Skip to content
Snippets Groups Projects
Select Git revision
  • f255702b2ef7a837c37ebe832bf6404bdd5bc6b2
  • master default protected
  • 1.2.3
  • 1.2.2
  • 1.2.1
  • 1.2.0
  • 1.1.0
  • 1.0.2
  • 1.0.1
  • 1.0
10 results

ClientImplementation.php

Blame
  • ClientImplementation.php 5.48 KiB
    <?php
    
    namespace WPDesk\ApiClient\Client;
    
    use Psr\Log\LoggerAwareInterface;
    use Psr\Log\LoggerInterface;
    use WPDesk\HttpClient\HttpClient;
    use WPDesk\HttpClient\HttpClientResponse;
    use WPDesk\ApiClient\Request\Request;
    use WPDesk\ApiClient\Response\RawResponse;
    use WPDesk\ApiClient\Response\Response;
    use WPDesk\ApiClient\Serializer\Serializer;
    use WPDesk\HttpClient\HttpClientRequestException;
    
    class ClientImplementation implements Client, LoggerAwareInterface
    {
        const CLIENT_VERSION = '1.6.5';
    
        const DEFAULT_TIMEOUT = 10;
    
        /** @var HttpClient */
        private $client;
    
        /** @var Serializer */
        private $serializer;
    
        /** @var LoggerInterface */
        private $logger;
    
        /** @var string */
        private $apiUrl;
    
        /** @var array */
        private $defaultRequestHeaders;
    
        /**
         * Client constructor.
         * @param HttpClient $client
         * @param Serializer $serializer
         * @param LoggerInterface $logger
         * @param string $apiUri
         * @param array $defaultRequestHeaders
         */
        public function __construct(
            HttpClient $client,
            Serializer $serializer,
            LoggerInterface $logger,
            $apiUri,
            array $defaultRequestHeaders
        ) {
            $this->client = $client;
            $this->serializer = $serializer;
            $this->logger = $logger;
            $this->apiUrl = $apiUri;
            $this->defaultRequestHeaders = $defaultRequestHeaders;
        }
    
        /**
         * Send given request trough HttpClient
         *
         * @param Request $request
         * @throws HttpClientRequestException
         * @return Response
         */
        public function sendRequest(Request $request)
        {
            $this->logger->debug("Sends request with METHOD: {$request->getMethod()}; to ENDPOINT {$request->getEndpoint()}",
                $this->getLoggerContext());
            try {
                $httpResponse = $this->client->send(