ExportOrderSubscriber   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
dl 0
loc 47
c 0
b 0
f 0
wmc 3
lcom 1
cbo 2
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 9 1
A processMessage() 0 9 2
1
<?php
2
declare(strict_types=1);
3
4
/**
5
 * File:ExportOrderSubscriber.php
6
 *
7
 * @author      Maciej Sławik <[email protected]>
8
 * Github:      https://github.com/maciejslawik
9
 */
10
11
namespace MSlwk\GenericOrderExport\Model\Amqp;
12
13
use Exception;
14
use Magento\Sales\Api\OrderRepositoryInterface;
15
use MSlwk\GenericOrderExport\Api\Amqp\ExportOrderMessageInterface;
16
use MSlwk\GenericOrderExport\Api\Amqp\ExportOrderSubscriberInterface;
17
use MSlwk\GenericOrderExport\Api\OrderExportServiceInterface;
18
use Psr\Log\LoggerInterface;
19
20
/**
21
 * Class ExportOrderSubscriber
22
 * @package MSlwk\GenericOrderExport\Model\Amqp
23
 */
24
class ExportOrderSubscriber implements ExportOrderSubscriberInterface
25
{
26
    /**
27
     * @var OrderExportServiceInterface
28
     */
29
    private $orderExportService;
30
31
    /**
32
     * @var OrderRepositoryInterface
33
     */
34
    private $orderRepository;
35
36
    /**
37
     * @var LoggerInterface
38
     */
39
    private $logger;
40
41
    /**
42
     * ExportOrderSubscriber constructor.
43
     * @param OrderExportServiceInterface $orderExportService
44
     * @param OrderRepositoryInterface $orderRepository
45
     * @param LoggerInterface $logger
46
     */
47
    public function __construct(
48
        OrderExportServiceInterface $orderExportService,
49
        OrderRepositoryInterface $orderRepository,
50
        LoggerInterface $logger
51
    ) {
52
        $this->orderExportService = $orderExportService;
53
        $this->orderRepository = $orderRepository;
54
        $this->logger = $logger;
55
    }
56
57
    /**
58
     * @param ExportOrderMessageInterface $message
59
     * @return void
60
     */
61
    public function processMessage(ExportOrderMessageInterface $message): void
62
    {
63
        try {
64
            $order = $this->orderRepository->get((int)$message->getOrderId());
65
            $this->orderExportService->exportOrder($order);
66
        } catch (Exception $e) {
67
            $this->logger->error($e->getMessage(), ['order_id' => $message->getOrderId()]);
68
        }
69
    }
70
}
71