|
9 | 9 | namespace Magefan\GoogleTagManager\Plugin\Magefan\GoogleTagManager\Api\DataLayer; |
10 | 10 |
|
11 | 11 | use Magefan\GoogleTagManager\Api\DataLayer\PurchaseInterface as Subject; |
12 | | -use Magefan\GoogleTagManager\Model\ResourceModel\Transaction\CollectionFactory as TransactionCollectionFactory; |
13 | 12 | use Magefan\GoogleTagManager\Model\TransactionFactory; |
14 | | -use Magefan\GoogleTagManager\Model\TransactionRepository; |
15 | 13 | use Magento\Sales\Model\Order; |
16 | | -use Magento\Framework\Exception\CouldNotSaveException; |
17 | | -use Psr\Log\LoggerInterface; |
18 | | -use Magefan\GoogleTagManager\Model\Transaction\Log; |
| 14 | +use Magefan\GoogleTagManager\Model\Transaction\Log as TransactionLog; |
19 | 15 |
|
20 | 16 | class PurchaseInterface |
21 | 17 | { |
22 | 18 | /** |
23 | | - * @var TransactionCollectionFactory |
| 19 | + * @var TransactionLog |
24 | 20 | */ |
25 | | - protected $transactionCollectionFactory; |
| 21 | + protected $transactionLog; |
26 | 22 |
|
27 | 23 | /** |
28 | | - * @var Log |
29 | | - */ |
30 | | - protected $transactionLogger; |
31 | | - |
32 | | - /** |
33 | | - * PurchaseInterface constructor. |
34 | | - * @param TransactionCollectionFactory $transactionCollectionFactory |
35 | | - * @param Log $transactionLogger |
| 24 | + * @param TransactionLog $transactionLog |
36 | 25 | */ |
37 | 26 | public function __construct( |
38 | | - TransactionCollectionFactory $transactionCollectionFactory, |
39 | | - Log $transactionLogger |
| 27 | + TransactionLog $transactionLog |
40 | 28 | ) { |
41 | | - $this->transactionCollectionFactory = $transactionCollectionFactory; |
42 | | - $this->transactionLogger = $transactionLogger; |
| 29 | + $this->transactionLog = $transactionLog; |
43 | 30 | } |
44 | 31 |
|
45 | 32 | /** |
46 | 33 | * @param Subject $subject |
47 | 34 | * @param $proceed |
48 | 35 | * @param Order $order |
49 | 36 | * @param string $requester |
50 | | - * @return array|mixed |
| 37 | + * @return array |
51 | 38 | */ |
52 | | - public function aroundGet(Subject $subject, $proceed, Order $order, string $requester = '') |
| 39 | + public function aroundGet(Subject $subject, $proceed, Order $order, string $requester = ''): array |
53 | 40 | { |
54 | | - if ($this->isTransactionIdUniqueForRequester($requester, $order)) { |
55 | | - $this->transactionLogger->logTransaction($order, $requester); |
| 41 | + if ($this->transactionLog->isTransactionUnique($order, $requester)) { |
| 42 | + $this->transactionLog->logTransaction($order, $requester); |
56 | 43 | return $proceed($order, $requester); |
57 | 44 | } else { |
58 | 45 | return []; |
59 | 46 | } |
60 | 47 | } |
61 | | - |
62 | | - /** |
63 | | - * @param string $requester |
64 | | - * @param string $transactionId |
65 | | - * @return bool |
66 | | - */ |
67 | | - protected function isTransactionIdUniqueForRequester(string $requester, Order $order): bool |
68 | | - { |
69 | | - $transactionsForRequesterByTransactionId = $this->transactionCollectionFactory->create()->addFieldToFilter( |
70 | | - 'requester', |
71 | | - $requester |
72 | | - )->addFieldToFilter( |
73 | | - 'transaction_id', |
74 | | - (string)$order->getIncrementId() |
75 | | - )->addFieldToFilter( |
76 | | - 'store_id', |
77 | | - (int)$order->getStoreId() |
78 | | - ); |
79 | | - |
80 | | - if (count($transactionsForRequesterByTransactionId)) { |
81 | | - return false; |
82 | | - } |
83 | | - |
84 | | - return true; |
85 | | - } |
86 | 48 | } |
0 commit comments