123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Signifyd\Model\SignifydGateway\Client;
- /**
- * Class RequestBuilder
- * Creates HTTP client, sends request to Signifyd and handles response
- */
- class RequestBuilder
- {
- /**
- * @var HttpClientFactory
- */
- private $clientCreator;
- /**
- * @var RequestSender
- */
- private $requestSender;
- /**
- * @var ResponseHandler
- */
- private $responseHandler;
- /**
- * RequestBuilder constructor.
- *
- * @param HttpClientFactory $clientCreator
- * @param RequestSender $requestSender
- * @param ResponseHandler $responseHandler
- */
- public function __construct(
- HttpClientFactory $clientCreator,
- RequestSender $requestSender,
- ResponseHandler $responseHandler
- ) {
- $this->clientCreator = $clientCreator;
- $this->requestSender = $requestSender;
- $this->responseHandler = $responseHandler;
- }
- /**
- * Creates HTTP client for API call.
- *
- * @param string $url
- * @param string $method
- * @param array $params
- * @param int|null $storeId
- * @return array
- */
- public function doRequest($url, $method, array $params = [], $storeId = null): array
- {
- $client = $this->clientCreator->create($url, $method, $params, $storeId);
- $response = $this->requestSender->send($client, $storeId);
- $result = $this->responseHandler->handle($response);
- return $result;
- }
- }
|