Select Git revision
ClientImplementation.php
-
Grzegorz Rola authoredGrzegorz Rola authored
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(