Skip to content
Snippets Groups Projects
Select Git revision
  • 98c7fb8dad7d8b6dae379500eb03fe1bd8841129
  • 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 6.04 KiB
    <?php
    
    namespace WPDesk\ApiClient\Client;
    
    use Psr\Log\LoggerAwareInterface;
    use Psr\Log\LoggerInterface;
    use Psr\Log\NullLogger;
    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 LIBRARY_LOGIN_CONTEXT = 'wp-api-client';
    
        /** @var HttpClient */
        private $client;
    
        /** @var Serializer */
        private $serializer;
    
        /** @var LoggerInterface */
        private $logger;
    
        /** @var string */
        private $apiUrl;
    
        /** @var array */
        private $defaultRequestHeaders;
    
    	/** @var int */
        private $timeout;
    
        /** @var bool */
        private $is_logger_available = false;
    
        /**
         * Client constructor.
         * @param HttpClient $client
         * @param Serializer $serializer
         * @param LoggerInterface $logger
         * @param string $apiUri
         * @param array $defaultRequestHeaders
         * @param int $timeout
         */
        public function __construct(
            HttpClient $client,
            Serializer $serializer,
            LoggerInterface $logger,
            $apiUri,
            array $defaultRequestHeaders,
            $timeout = 10
        ) {
            $this->client                = $client;
            $this->serializer            = $serializer;
            $this->logger                = $logger;
            $this->apiUrl                = $apiUri;
            $this->defaultRequestHeaders = $defaultRequestHeaders;
            $this->timeout               = $timeout;
            $this->is_logger_available   = ! $logger instanceof NullLogger;
        }
    
        /**
         * Send given request trough HttpClient