diff --git a/Observer/SendCustomerDataToElasticsearch.php b/Observer/SendCustomerDataToElasticsearch.php index 778b6fefd4fe9b8d541f3a85d0d4fdfa9001c515..0d65fbf34233c009ffbec870a3371cd4657ca099 100644 --- a/Observer/SendCustomerDataToElasticsearch.php +++ b/Observer/SendCustomerDataToElasticsearch.php @@ -1,8 +1,13 @@ <?php namespace NicolasBejean\Customer\Observer; +use Magento\Customer\Api\AccountManagementInterface; +use Magento\Customer\Api\Data\CustomerInterface; use Magento\Framework\Event\Observer; use Magento\Framework\Event\ObserverInterface; +use Magento\Framework\Exception\LocalizedException; +use Magento\Framework\Exception\NoSuchEntityException; +use Psr\Log\LoggerInterface; /** * Class SendCustomerDataToElasticsearch @@ -15,7 +20,29 @@ use Magento\Framework\Event\ObserverInterface; */ class SendCustomerDataToElasticsearch implements ObserverInterface { - public function __construct() {} + /** + * @var AccountManagementInterface + */ + private AccountManagementInterface $accountManagement; + + /** + * @var LoggerInterface + */ + private LoggerInterface $logger; + + /** + * SendCustomerDataToElasticsearch constructor. + * + * @param AccountManagementInterface $accountManagement + * @param LoggerInterface $logger + */ + public function __construct( + AccountManagementInterface $accountManagement, + LoggerInterface $logger + ) { + $this->accountManagement = $accountManagement; + $this->logger = $logger; + } /** * Execute method @@ -27,7 +54,21 @@ class SendCustomerDataToElasticsearch implements ObserverInterface $event = $observer->getEvent(); if ($event->getName() === 'customer_register_success') { + /** @var CustomerInterface $customer */ + $customer = $observer->getData('customer'); + + try { + $defaultBillingAddress = $this->accountManagement->getDefaultBillingAddress($customer->getId()); + } catch (NoSuchEntityException | LocalizedException $e) { + $this->logger->error(__('An error has occurred while retrieving the default billing address.')); + exit(); + } + + if (!is_null($defaultBillingAddress)) { + /* Send data to Elasticsearch */ + } + exit(); } } } diff --git a/etc/events.xml b/etc/events.xml index db75584a5928128f6a5b9705be7633fc2173bf36..84356106b8b47a4b752b860e014d5dd2db43b07d 100644 --- a/etc/events.xml +++ b/etc/events.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd"> <event name="customer_register_success"> - <observer name="send_customer_data_to_elasticsearch" instance="NicolasBejean\Customer\Observer\SendCustomerDateToElasticsearch" /> + <observer name="send_customer_data_to_elasticsearch" instance="NicolasBejean\Customer\Observer\SendCustomerDataToElasticsearch" /> </event> </config>