Skip to content

Commit 4526c8e

Browse files
committed
Refactored Transaction Logger
1 parent 90f9a2a commit 4526c8e

File tree

3 files changed

+37
-51
lines changed

3 files changed

+37
-51
lines changed

Model/Transaction/Log.php

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
use Magefan\GoogleTagManager\Model\ResourceModel\Transaction\CollectionFactory as TransactionCollectionFactory;
1212
use Magefan\GoogleTagManager\Model\TransactionFactory;
1313
use Magefan\GoogleTagManager\Model\TransactionRepository;
14-
use Magento\Sales\Model\Order;
14+
use Magento\Sales\Api\Data\OrderInterface as Order;
1515
use Magento\Framework\Exception\CouldNotSaveException;
1616
use Psr\Log\LoggerInterface;
1717

@@ -62,7 +62,7 @@ public function __construct(
6262
* @param string $requester
6363
* @return void
6464
*/
65-
public function logTransaction(\Magento\Sales\Api\Data\OrderInterface $order, string $requester)
65+
public function logTransaction(Order $order, string $requester)
6666
{
6767
$transactionModel = $this->transactionFactory->create();
6868

@@ -77,4 +77,29 @@ public function logTransaction(\Magento\Sales\Api\Data\OrderInterface $order, st
7777
. ' and requester: ' . $requester);
7878
}
7979
}
80+
81+
/**
82+
* @param Order $order
83+
* @param string $requester
84+
* @return void
85+
*/
86+
public function isTransactionUnique(Order $order, string $requester): bool
87+
{
88+
$transactionsForRequesterByTransactionId = $this->transactionFactory->create()->getCollection()->addFieldToFilter(
89+
'requester',
90+
$requester
91+
)->addFieldToFilter(
92+
'transaction_id',
93+
(string)$order->getIncrementId()
94+
)->addFieldToFilter(
95+
'store_id',
96+
(int)$order->getStoreId()
97+
);
98+
99+
if (count($transactionsForRequesterByTransactionId)) {
100+
return false;
101+
}
102+
103+
return true;
104+
}
80105
}

Model/TransactionRepository.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
use Magefan\GoogleTagManager\Model\ResourceModel\Transaction as ResourceTransaction;
1212
use Magefan\GoogleTagManager\Model\TransactionFactory;
13-
use Magefan\GoogleTagManager\Model\Transaction;
1413
use Magento\Framework\Exception\CouldNotSaveException;
1514
use Magento\Framework\Exception\NoSuchEntityException;
1615

Plugin/Magefan/GoogleTagManager/Api/DataLayer/PurchaseInterface.php

Lines changed: 10 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -9,78 +9,40 @@
99
namespace Magefan\GoogleTagManager\Plugin\Magefan\GoogleTagManager\Api\DataLayer;
1010

1111
use Magefan\GoogleTagManager\Api\DataLayer\PurchaseInterface as Subject;
12-
use Magefan\GoogleTagManager\Model\ResourceModel\Transaction\CollectionFactory as TransactionCollectionFactory;
1312
use Magefan\GoogleTagManager\Model\TransactionFactory;
14-
use Magefan\GoogleTagManager\Model\TransactionRepository;
1513
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;
1915

2016
class PurchaseInterface
2117
{
2218
/**
23-
* @var TransactionCollectionFactory
19+
* @var TransactionLog
2420
*/
25-
protected $transactionCollectionFactory;
21+
protected $transactionLog;
2622

2723
/**
28-
* @var Log
29-
*/
30-
protected $transactionLogger;
31-
32-
/**
33-
* PurchaseInterface constructor.
34-
* @param TransactionCollectionFactory $transactionCollectionFactory
35-
* @param Log $transactionLogger
24+
* @param TransactionLog $transactionLog
3625
*/
3726
public function __construct(
38-
TransactionCollectionFactory $transactionCollectionFactory,
39-
Log $transactionLogger
27+
TransactionLog $transactionLog
4028
) {
41-
$this->transactionCollectionFactory = $transactionCollectionFactory;
42-
$this->transactionLogger = $transactionLogger;
29+
$this->transactionLog = $transactionLog;
4330
}
4431

4532
/**
4633
* @param Subject $subject
4734
* @param $proceed
4835
* @param Order $order
4936
* @param string $requester
50-
* @return array|mixed
37+
* @return array
5138
*/
52-
public function aroundGet(Subject $subject, $proceed, Order $order, string $requester = '')
39+
public function aroundGet(Subject $subject, $proceed, Order $order, string $requester = ''): array
5340
{
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);
5643
return $proceed($order, $requester);
5744
} else {
5845
return [];
5946
}
6047
}
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-
}
8648
}

0 commit comments

Comments
 (0)