Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AbstractTransaction.php
Go to the documentation of this file.
1 <?php
8 
14 use Psr\Log\LoggerInterface;
15 
19 abstract class AbstractTransaction implements ClientInterface
20 {
24  protected $logger;
25 
29  protected $customLogger;
30 
34  protected $adapterFactory;
35 
44  {
45  $this->logger = $logger;
46  $this->customLogger = $customLogger;
47  $this->adapterFactory = $adapterFactory;
48  }
49 
53  public function placeRequest(TransferInterface $transferObject)
54  {
55  $data = $transferObject->getBody();
56  $log = [
57  'request' => $data,
58  'client' => static::class
59  ];
60  $response['object'] = [];
61 
62  try {
63  $response['object'] = $this->process($data);
64  } catch (\Exception $e) {
65  $message = __($e->getMessage() ?: 'Sorry, but something went wrong');
66  $this->logger->critical($message);
67  throw new ClientException($message);
68  } finally {
69  $log['response'] = (array) $response['object'];
70  $this->customLogger->debug($log);
71  }
72 
73  return $response;
74  }
75 
81  abstract protected function process(array $data);
82 }
$response
Definition: 404.php:11
__construct(LoggerInterface $logger, Logger $customLogger, BraintreeAdapterFactory $adapterFactory)
__()
Definition: __.php:13
$message