<?php declare(strict_types=1); namespace Xentral\Components\HttpClient\Request; use GuzzleHttp\Psr7\Request as GuzzleRequest; use Psr\Http\Message\RequestInterface as PsrRequestInterface; use Xentral\Components\HttpClient\Uri\Uri; use Xentral\Components\HttpClient\Uri\UriInterface; final class ClientRequest extends GuzzleRequest implements ClientRequestInterface { /** * @param PsrRequestInterface $guzzleRequest * * @return ClientRequestInterface */ public static function fromGuzzleRequest(PsrRequestInterface $guzzleRequest): ClientRequestInterface { return new self( $guzzleRequest->getMethod(), Uri::fromGuzzleUri($guzzleRequest->getUri()), $guzzleRequest->getHeaders(), $guzzleRequest->getBody(), $guzzleRequest->getProtocolVersion() ); } /** * @return UriInterface|string|void */ public function getUri() { $guzzleUri = parent::getUri(); return Uri::fromGuzzleUri($guzzleUri); } }