namespace Magento\Customer\Api; /** * Remote class for @see \Magento\Customer\Api\CustomerRepositoryInterface */ class CustomerRepositoryInterfaceRemote implements CustomerRepositoryInterface { /** * Publisher * * @var \Magento\Framework\MessageQueue\PublisherInterface */ protected $publisher = null; /** * Initialize dependencies. * * @param \Magento\Framework\MessageQueue\PublisherInterface $publisher */ public function __construct(\Magento\Framework\MessageQueue\PublisherInterface $publisher) { $this->publisher = $publisher; } /** * @inheritdoc */ public function save(\Magento\Customer\Api\Data\CustomerInterface $customer, $passwordHash = null) { return $this->publisher->publish( 'magento.customer.api.customerRepositoryInterface.save', ['customer' => $customer, 'passwordHash' => $passwordHash] ); } /** * @inheritdoc */ public function get($email, $websiteId = null) { return $this->publisher->publish( 'magento.customer.api.customerRepositoryInterface.get', ['email' => $email, 'websiteId' => $websiteId] ); } /** * @inheritdoc */ public function getById($customerId) { return $this->publisher->publish( 'magento.customer.api.customerRepositoryInterface.getById', ['customerId' => $customerId] ); } /** * @inheritdoc */ public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria) { return $this->publisher->publish( 'magento.customer.api.customerRepositoryInterface.getList', ['searchCriteria' => $searchCriteria] ); } /** * @inheritdoc */ public function delete(\Magento\Customer\Api\Data\CustomerInterface $customer) { return $this->publisher->publish( 'magento.customer.api.customerRepositoryInterface.delete', ['customer' => $customer] ); } /** * @inheritdoc */ public function deleteById($customerId) { return $this->publisher->publish( 'magento.customer.api.customerRepositoryInterface.deleteById', ['customerId' => $customerId] ); } }