![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-customer-graph-ql/Model/Customer/ |
<?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\AccountManagementInterface; use Magento\Customer\Api\CustomerRepositoryInterface; use Magento\Customer\Api\Data\CustomerInterface; use Magento\Customer\Model\AuthenticationInterface; use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Framework\GraphQl\Exception\GraphQlAuthenticationException; use Magento\Framework\GraphQl\Exception\GraphQlAuthorizationException; use Magento\Framework\GraphQl\Exception\GraphQlInputException; use Magento\Framework\GraphQl\Exception\GraphQlNoSuchEntityException; use Magento\GraphQl\Model\Query\ContextInterface; /** * Get customer */ class GetCustomer { /** * @var AuthenticationInterface */ private $authentication; /** * @var CustomerRepositoryInterface */ private $customerRepository; /** * @var AccountManagementInterface */ private $accountManagement; /** * @param AuthenticationInterface $authentication * @param CustomerRepositoryInterface $customerRepository * @param AccountManagementInterface $accountManagement */ public function __construct( AuthenticationInterface $authentication, CustomerRepositoryInterface $customerRepository, AccountManagementInterface $accountManagement ) { $this->authentication = $authentication; $this->customerRepository = $customerRepository; $this->accountManagement = $accountManagement; } /** * Get customer * * @param ContextInterface $context * @return CustomerInterface * @throws GraphQlAuthenticationException * @throws GraphQlAuthorizationException * @throws GraphQlInputException * @throws GraphQlNoSuchEntityException */ public function execute(ContextInterface $context): CustomerInterface { $currentUserId = $context->getUserId(); try { $customer = $this->customerRepository->getById($currentUserId); // @codeCoverageIgnoreStart } catch (NoSuchEntityException $e) { throw new GraphQlNoSuchEntityException( __('Customer with id "%customer_id" does not exist.', ['customer_id' => $currentUserId]), $e ); } catch (LocalizedException $e) { throw new GraphQlInputException(__($e->getMessage())); // @codeCoverageIgnoreEnd } if (true === $this->authentication->isLocked($currentUserId)) { throw new GraphQlAuthenticationException(__('The account is locked.')); } try { $confirmationStatus = $this->accountManagement->getConfirmationStatus($currentUserId); // @codeCoverageIgnoreStart } catch (LocalizedException $e) { throw new GraphQlInputException(__($e->getMessage())); // @codeCoverageIgnoreEnd } if ($confirmationStatus === AccountManagementInterface::ACCOUNT_CONFIRMATION_REQUIRED) { throw new GraphQlAuthenticationException(__("This account isn't confirmed. Verify and try again.")); } return $customer; } }