| Current Path : /home/rtorresani/www/vendor/magento/module-customer-graph-ql/Model/Customer/ |
| Current File : //home/rtorresani/www/vendor/magento/module-customer-graph-ql/Model/Customer/SaveCustomer.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\CustomerGraphQl\Model\Customer;
use Magento\Customer\Api\CustomerRepositoryInterface;
use Magento\Framework\Exception\AlreadyExistsException;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\GraphQl\Exception\GraphQlAlreadyExistsException;
use Magento\Framework\GraphQl\Exception\GraphQlInputException;
use Magento\Customer\Api\Data\CustomerInterface;
/**
* Save customer
*/
class SaveCustomer
{
/**
* @var CustomerRepositoryInterface
*/
private $customerRepository;
/**
* @param CustomerRepositoryInterface $customerRepository
*/
public function __construct(
CustomerRepositoryInterface $customerRepository
) {
$this->customerRepository = $customerRepository;
}
/**
* Save customer
*
* @param CustomerInterface $customer
* @throws GraphQlAlreadyExistsException
* @throws GraphQlInputException
*/
public function execute(CustomerInterface $customer): void
{
try {
$this->customerRepository->save($customer);
} catch (AlreadyExistsException $e) {
throw new GraphQlAlreadyExistsException(
__('A customer with the same email address already exists in an associated website.'),
$e
);
} catch (LocalizedException $e) {
throw new GraphQlInputException(__($e->getMessage()), $e);
}
}
}