1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Signifyd\Model\SignifydGateway\Client;
- use Magento\Signifyd\Model\SignifydGateway\Debugger\DebuggerFactory;
- use Magento\Signifyd\Model\SignifydGateway\ApiCallException;
- use Magento\Framework\HTTP\ZendClient;
- /**
- * Class RequestSender
- * Gets HTTP client end sends request to Signifyd API
- */
- class RequestSender
- {
- /**
- * @var DebuggerFactory
- */
- private $debuggerFactory;
- /**
- * RequestSender constructor.
- *
- * @param DebuggerFactory $debuggerFactory
- */
- public function __construct(
- DebuggerFactory $debuggerFactory
- ) {
- $this->debuggerFactory = $debuggerFactory;
- }
- /**
- * Sends HTTP request to Signifyd API with configured client.
- *
- * Each request/response pair is handled by debugger.
- * If debug mode for Signifyd integration enabled in configuration
- * debug information is recorded to debug.log.
- *
- * @param ZendClient $client
- * @param int|null $storeId
- * @return \Zend_Http_Response
- * @throws ApiCallException
- */
- public function send(ZendClient $client, $storeId = null): \Zend_Http_Response
- {
- try {
- $response = $client->request();
- $this->debuggerFactory->create($storeId)->success(
- $client->getUri(true),
- $client->getLastRequest(),
- $response->getStatus() . ' ' . $response->getMessage(),
- $response->getBody()
- );
- return $response;
- } catch (\Exception $e) {
- $this->debuggerFactory->create($storeId)->failure(
- $client->getUri(true),
- $client->getLastRequest(),
- $e
- );
- throw new ApiCallException(
- 'Unable to process Signifyd API: ' . $e->getMessage(),
- $e->getCode(),
- $e,
- $client->getLastRequest()
- );
- }
- }
- }
|