-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathReciever.php
45 lines (36 loc) · 1.47 KB
/
Reciever.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
namespace Fredden\JavaScriptErrorReporting\Model;
use Fredden\JavaScriptErrorReporting\Api\ReceiverInterface;
use Fredden\JavaScriptErrorReporting\Model\EventFactory;
use Magento\Framework\Webapi\Rest\Request;
class Reciever implements ReceiverInterface
{
public function __construct(
private readonly EventFactory $eventFactory,
private readonly Request $request,
) {
}
/**
* @inheritDoc
*/
public function saveErrorInformation(): void
{
$parameters = $this->request->getBodyParams();
if (!isset($parameters['browser']) || !isset($parameters['event'])) {
return;
}
$event = $this->eventFactory->create();
$event->setUserAgent($this->request->getHeader('user-agent', null));
$event->setReferrer($this->request->getHeader('referer', null));
$event->setBrowserHeight($parameters['browser']['height'] ?? 0);
$event->setBrowserWidth($parameters['browser']['width'] ?? 0);
$event->setUrl($parameters['browser']['url'] ?? null);
$event->setErrorMessage($parameters['event']['message'] ?? '');
$event->setStackTrace($parameters['event']['stack'] ?? '');
$event->setErrorFile($parameters['event']['filename'] ?? '');
$event->setLine($parameters['event']['lineno'] ?? 0);
$event->setColumn($parameters['event']['colno'] ?? 0);
$event->setTimer($parameters['event']['timer'] ?? 0);
$event->save();
}
}