![]() 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/cartforge.co/vendor/magento/module-vault/Controller/Cards/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Vault\Controller\Cards; use Magento\Customer\Model\Session; use Magento\Framework\App\Action\Context; use Magento\Framework\App\Request\Http; use Magento\Framework\App\ResponseInterface; use Magento\Framework\Controller\Result\JsonFactory; use Magento\Framework\Controller\ResultInterface; use Magento\Framework\Data\Form\FormKey\Validator; use Magento\Framework\Exception\NotFoundException; use Magento\Vault\Api\Data\PaymentTokenInterface; use Magento\Vault\Api\PaymentTokenRepositoryInterface; use Magento\Vault\Controller\CardsManagement; use Magento\Vault\Model\PaymentTokenManagement; /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class DeleteAction extends CardsManagement { const WRONG_REQUEST = 1; const WRONG_TOKEN = 2; const ACTION_EXCEPTION = 3; /** * @var array */ private $errorsMap = []; /** * @var JsonFactory */ private $jsonFactory; /** * @var Validator */ private $fkValidator; /** * @var PaymentTokenRepositoryInterface */ private $tokenRepository; /** * @var PaymentTokenManagement */ private $paymentTokenManagement; /** * @param Context $context * @param Session $customerSession * @param JsonFactory $jsonFactory * @param Validator $fkValidator * @param PaymentTokenRepositoryInterface $tokenRepository * @param PaymentTokenManagement $paymentTokenManagement */ public function __construct( Context $context, Session $customerSession, JsonFactory $jsonFactory, Validator $fkValidator, PaymentTokenRepositoryInterface $tokenRepository, PaymentTokenManagement $paymentTokenManagement ) { parent::__construct($context, $customerSession); $this->jsonFactory = $jsonFactory; $this->fkValidator = $fkValidator; $this->tokenRepository = $tokenRepository; $this->paymentTokenManagement = $paymentTokenManagement; $this->errorsMap = [ self::WRONG_TOKEN => __('No token found.'), self::WRONG_REQUEST => __('Wrong request.'), self::ACTION_EXCEPTION => __('Deletion failure. Please try again.') ]; } /** * Dispatch request * * @return ResultInterface|ResponseInterface * @throws NotFoundException */ public function execute() { $request = $this->_request; if (!$request instanceof Http) { return $this->createErrorResponse(self::WRONG_REQUEST); } if (!$this->fkValidator->validate($request)) { return $this->createErrorResponse(self::WRONG_REQUEST); } $paymentToken = $this->getPaymentToken($request); if ($paymentToken === null) { return $this->createErrorResponse(self::WRONG_TOKEN); } try { $this->tokenRepository->delete($paymentToken); } catch (\Exception $e) { return $this->createErrorResponse(self::ACTION_EXCEPTION); } return $this->createSuccessMessage(); } /** * @param int $errorCode * @return ResponseInterface */ private function createErrorResponse($errorCode) { $this->messageManager->addErrorMessage( $this->errorsMap[$errorCode] ); return $this->_redirect('vault/cards/listaction'); } /** * @return ResponseInterface */ private function createSuccessMessage() { $this->messageManager->addSuccessMessage( __('Stored Payment Method was successfully removed') ); return $this->_redirect('vault/cards/listaction'); } /** * @param Http $request * @return PaymentTokenInterface|null */ private function getPaymentToken(Http $request) { $publicHash = $request->getPostValue(PaymentTokenInterface::PUBLIC_HASH); if ($publicHash === null) { return null; } return $this->paymentTokenManagement->getByPublicHash( $publicHash, $this->customerSession->getCustomerId() ); } }