|
13 | 13 |
|
14 | 14 | namespace MonsieurBiz\SyliusSearchPlugin\MessageHandler; |
15 | 15 |
|
| 16 | +use Exception; |
16 | 17 | use MonsieurBiz\SyliusSearchPlugin\Index\IndexerInterface; |
17 | 18 | use MonsieurBiz\SyliusSearchPlugin\Message\ProductToDeleteFromIds; |
18 | 19 | use MonsieurBiz\SyliusSearchPlugin\Model\Documentable\DocumentableInterface; |
| 20 | +use Psr\Log\LoggerInterface; |
19 | 21 | use Sylius\Component\Registry\ServiceRegistryInterface; |
20 | 22 | use Symfony\Component\Messenger\Handler\MessageHandlerInterface; |
21 | 23 |
|
22 | 24 | class ProductToDeleteFromIdsHandler implements MessageHandlerInterface |
23 | 25 | { |
24 | 26 | private IndexerInterface $indexer; |
25 | | - |
26 | 27 | private ServiceRegistryInterface $documentableRegistry; |
| 28 | + private LoggerInterface $logger; |
27 | 29 |
|
28 | 30 | public function __construct( |
29 | 31 | IndexerInterface $indexer, |
30 | | - ServiceRegistryInterface $documentableRegistry |
| 32 | + ServiceRegistryInterface $documentableRegistry, |
| 33 | + LoggerInterface $logger |
31 | 34 | ) { |
32 | 35 | $this->indexer = $indexer; |
33 | 36 | $this->documentableRegistry = $documentableRegistry; |
| 37 | + $this->logger = $logger; |
34 | 38 | } |
35 | 39 |
|
36 | 40 | public function __invoke(ProductToDeleteFromIds $message): void |
37 | 41 | { |
38 | 42 | /** @var DocumentableInterface $documentable */ |
39 | 43 | $documentable = $this->documentableRegistry->get('search.documentable.monsieurbiz_product'); |
40 | 44 |
|
41 | | - $this->indexer->deleteByDocumentIds( |
42 | | - $documentable, |
43 | | - $message->getProductIds() |
44 | | - ); |
| 45 | + try { |
| 46 | + $this->indexer->deleteByDocumentIds( |
| 47 | + $documentable, |
| 48 | + $message->getProductIds() |
| 49 | + ); |
| 50 | + } catch (Exception $e) { |
| 51 | + $this->logger->error('An error occurred while deleting products from search index', [ |
| 52 | + 'exception' => $e, |
| 53 | + ]); |
| 54 | + } |
45 | 55 | } |
46 | 56 | } |
0 commit comments