Skip to content

Commit 91ab82c

Browse files
committed
ADO-313: removed message queue imeplementation for capi events
1 parent 0550a73 commit 91ab82c

File tree

2 files changed

+44
-31
lines changed

2 files changed

+44
-31
lines changed

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

Lines changed: 29 additions & 18 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;
911
use Meta\BusinessExtension\Helper\FBEHelper;
1012
use Magento\Framework\Controller\Result\JsonFactory;
1113
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,6 +19,11 @@ class Tracker implements HttpPostActionInterface
1919
*/
2020
private $request;
2121

22+
/**
23+
* @var ServerSideHelper
24+
*/
25+
private $serverSideHelper;
26+
2227
/**
2328
* @var FBEHelper
2429
*/
@@ -35,36 +40,33 @@ class Tracker implements HttpPostActionInterface
3540
private $jsonFactory;
3641

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

4747
/**
48+
* Constructor
49+
*
4850
* @param RequestInterface $request
51+
* @param ServerSideHelper $serverSideHelper
4952
* @param FBEHelper $fbeHelper
5053
* @param JsonFactory $jsonFactory
51-
* @param PublisherInterface $publisher
52-
* @param JsonSerializer $jsonSerializer
54+
* @param ServerEventFactory $serverEventFactory
5355
* @param array $pixelEvents
5456
*/
5557
public function __construct(
5658
RequestInterface $request,
59+
ServerSideHelper $serverSideHelper,
5760
FBEHelper $fbeHelper,
5861
JsonFactory $jsonFactory,
59-
PublisherInterface $publisher,
60-
JsonSerializer $jsonSerializer,
62+
ServerEventFactory $serverEventFactory,
6163
array $pixelEvents = []
6264
) {
6365
$this->request = $request;
66+
$this->serverSideHelper = $serverSideHelper;
6467
$this->fbeHelper = $fbeHelper;
6568
$this->jsonFactory = $jsonFactory;
66-
$this->publisher = $publisher;
67-
$this->jsonSerializer = $jsonSerializer;
69+
$this->serverEventFactory = $serverEventFactory;
6870
$this->pixelEvents = $pixelEvents;
6971
}
7072

@@ -79,13 +81,22 @@ public function execute(): Json
7981
try {
8082
$params = $this->request->getParams();
8183
$eventName = $params['eventName'];
84+
$eventId = $params['eventId'];
8285

8386
if ($eventName) {
8487
$payload = $this->pixelEvents[$eventName]->getPayload($params);
85-
$payload['event_id'] = $params['eventId'];
86-
$payload['event_type'] = $this->pixelEvents[$eventName]->getEventType();
8788
if (isset($payload)) {
88-
$this->publisher->publish('send.conversion.event.to.meta', $this->jsonSerializer->serialize($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+
}
89100
$response['success'] = true;
90101
}
91102
}

app/code/Meta/Conversion/Model/CapiTracker.php

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,35 @@
33

44
namespace Meta\Conversion\Model;
55

6+
use Meta\BusinessExtension\Helper\FBEHelper;
7+
use Meta\Conversion\Helper\ServerEventFactory;
8+
use Meta\Conversion\Helper\ServerSideHelper;
69
use Magento\Customer\Model\Session as CustomerSession;
7-
use Magento\Framework\Serialize\Serializer\Json as JsonSerializer;
8-
use Magento\Framework\MessageQueue\PublisherInterface;
910

1011
class CapiTracker
1112
{
1213

13-
/**
14-
* @param CustomerSession $customerSession
15-
* @param CapiEventIdHandler $capiEventIdHandler
16-
* @param JsonSerializer $jsonSerializer
17-
* @param PublisherInterface $publisher
18-
*/
1914
public function __construct(
15+
private readonly FBEHelper $fbeHelper,
16+
private readonly ServerSideHelper $serverSideHelper,
17+
private readonly ServerEventFactory $serverEventFactory,
2018
private readonly CustomerSession $customerSession,
2119
private readonly CapiEventIdHandler $capiEventIdHandler,
22-
private readonly JsonSerializer $jsonSerializer,
23-
private readonly PublisherInterface $publisher
2420
) { }
2521

2622
public function execute(array $payload, string $eventName, string $eventType, bool $useSessionForEventIds = false): void
2723
{
2824
if (isset($payload)) {
25+
$payload['custom_properties'] = [];
26+
$payload['custom_properties']['source'] = $this->fbeHelper->getSource();
27+
$payload['custom_properties']['pluginVersion'] = $this->fbeHelper->getPluginVersion();
2928
$eventId = $this->generateEventId($eventName, $useSessionForEventIds);
30-
$payload['event_id'] = $eventId;
31-
$payload['event_type'] = $eventType;
32-
$this->publisher->publish('send.conversion.event.to.meta', $this->jsonSerializer->serialize($payload));
29+
$event = $this->serverEventFactory->createEvent($eventType, array_filter($payload), $eventId);
30+
if (isset($payload['userDataFromOrder'])) {
31+
$this->serverSideHelper->sendEvent($event, $payload['userDataFromOrder']);
32+
} else {
33+
$this->serverSideHelper->sendEvent($event);
34+
}
3335
}
3436
}
3537

0 commit comments

Comments
 (0)