![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/inventory.corals.io/Corals/modules/Payment/Common/Http/ |
<?php namespace Corals\Modules\Payment\Common\Http; use Http\Client\HttpClient; use Http\Discovery\HttpClientDiscovery; use Http\Discovery\MessageFactoryDiscovery; use Http\Message\RequestFactory; use Corals\Modules\Payment\Common\Http\Exception\NetworkException; use Corals\Modules\Payment\Common\Http\Exception\RequestException; use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ResponseInterface; class Client implements ClientInterface { /** * The Http Client which implements `public function sendRequest(RequestInterface $request)` * Note: Will be changed to PSR-18 when released * * @var HttpClient */ private $httpClient; /** * @var RequestFactory */ private $requestFactory; public function __construct($httpClient = null, RequestFactory $requestFactory = null) { $this->httpClient = $httpClient ?: HttpClientDiscovery::find(); $this->requestFactory = $requestFactory ?: MessageFactoryDiscovery::find(); } /** * @param string $method * @param \Psr\Http\Message\UriInterface|string $uri * @param array $headers * @param null $body * @param string $protocolVersion * @return ResponseInterface * @throws \Http\Client\Exception */ public function request( string $method, $uri, array $headers = [], $body = null, string $protocolVersion = '1.1' ): ResponseInterface { $request = $this->requestFactory->createRequest($method, $uri, $headers, $body, $protocolVersion); return $this->sendRequest($request); } /** * @param RequestInterface $request * @return ResponseInterface * @throws \Http\Client\Exception */ private function sendRequest(RequestInterface $request) { try { return $this->httpClient->sendRequest($request); } catch (\Http\Client\Exception\NetworkException $networkException) { throw new NetworkException($networkException->getMessage(), $request, $networkException); } catch (\Exception $exception) { throw new RequestException($exception->getMessage(), $request, $exception); } } }