Skip to content

Commit f599e17

Browse files
committed
ADO-313: changes to add event to message queue instead of direct calling from controller
1 parent f1229f0 commit f599e17

File tree

1 file changed

+18
-29
lines changed

1 file changed

+18
-29
lines changed

app/code/Meta/Conversion/Controller/Pixel/Tracker.php

Lines changed: 18 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66

77
use Magento\Framework\App\Action\HttpPostActionInterface;
88
use Magento\Framework\App\RequestInterface;
9-
use Meta\Conversion\Helper\ServerSideHelper;
10-
use Meta\Conversion\Helper\ServerEventFactory;
119
use Meta\BusinessExtension\Helper\FBEHelper;
1210
use Magento\Framework\Controller\Result\JsonFactory;
1311
use Magento\Framework\Controller\Result\Json;
12+
use Magento\Framework\MessageQueue\PublisherInterface;
13+
use Magento\Framework\Serialize\Serializer\Json as JsonSerializer;
1414

1515
class Tracker implements HttpPostActionInterface
1616
{
@@ -19,11 +19,6 @@ class Tracker implements HttpPostActionInterface
1919
*/
2020
private $request;
2121

22-
/**
23-
* @var ServerSideHelper
24-
*/
25-
private $serverSideHelper;
26-
2722
/**
2823
* @var FBEHelper
2924
*/
@@ -40,33 +35,36 @@ class Tracker implements HttpPostActionInterface
4035
private $jsonFactory;
4136

4237
/**
43-
* @var ServerEventFactory
38+
* @var PublisherInterface
4439
*/
45-
private $serverEventFactory;
40+
private $publisher;
41+
42+
/**
43+
* @var JsonSerializer
44+
*/
45+
private $jsonSerializer;
4646

4747
/**
48-
* Constructor
49-
*
5048
* @param RequestInterface $request
51-
* @param ServerSideHelper $serverSideHelper
5249
* @param FBEHelper $fbeHelper
5350
* @param JsonFactory $jsonFactory
54-
* @param ServerEventFactory $serverEventFactory
51+
* @param PublisherInterface $publisher
52+
* @param JsonSerializer $jsonSerializer
5553
* @param array $pixelEvents
5654
*/
5755
public function __construct(
5856
RequestInterface $request,
59-
ServerSideHelper $serverSideHelper,
6057
FBEHelper $fbeHelper,
6158
JsonFactory $jsonFactory,
62-
ServerEventFactory $serverEventFactory,
59+
PublisherInterface $publisher,
60+
JsonSerializer $jsonSerializer,
6361
array $pixelEvents = []
6462
) {
6563
$this->request = $request;
66-
$this->serverSideHelper = $serverSideHelper;
6764
$this->fbeHelper = $fbeHelper;
6865
$this->jsonFactory = $jsonFactory;
69-
$this->serverEventFactory = $serverEventFactory;
66+
$this->publisher = $publisher;
67+
$this->jsonSerializer = $jsonSerializer;
7068
$this->pixelEvents = $pixelEvents;
7169
}
7270

@@ -81,22 +79,13 @@ public function execute(): Json
8179
try {
8280
$params = $this->request->getParams();
8381
$eventName = $params['eventName'];
84-
$eventId = $params['eventId'];
8582

8683
if ($eventName) {
8784
$payload = $this->pixelEvents[$eventName]->getPayload($params);
85+
$payload['event_id'] = $params['eventId'];
86+
$payload['event_type'] = $this->pixelEvents[$eventName]->getEventType();
8887
if (isset($payload)) {
89-
// Add source and pluginVersion in the payload as custom properties
90-
$payload['custom_properties'] = [];
91-
$payload['custom_properties']['source'] = $this->fbeHelper->getSource();
92-
$payload['custom_properties']['pluginVersion'] = $this->fbeHelper->getPluginVersion();
93-
$eventType = $this->pixelEvents[$eventName]->getEventType();
94-
$event = $this->serverEventFactory->createEvent($eventType, array_filter($payload), $eventId);
95-
if (isset($payload['userDataFromOrder'])) {
96-
$this->serverSideHelper->sendEvent($event, $payload['userDataFromOrder']);
97-
} else {
98-
$this->serverSideHelper->sendEvent($event);
99-
}
88+
$this->publisher->publish('send.conversion.event.to.meta', $this->jsonSerializer->serialize($payload));
10089
$response['success'] = true;
10190
}
10291
}

0 commit comments

Comments
 (0)