src/Controller/Api/Payment/GetPaymentStatusController.php line 26

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controller\Api\Payment;
  4. use App\Exception\Global\InvalidParameterException;
  5. use App\Exception\Global\ResourceNotFoundException;
  6. use App\Repository\Payment\PaymentRepository;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\JsonResponse;
  9. use Symfony\Component\HttpFoundation\Request;
  10. class GetPaymentStatusController extends AbstractController
  11. {
  12.     public function __construct(
  13.         private PaymentRepository $paymentRepository,
  14.     ) {
  15.     }
  16.     public function __invoke(Request $request): JsonResponse
  17.     {
  18.         $shopToken $request->headers->get('shop-token');
  19.         $externalId $request->attributes->get('external_id');
  20.         if (null === $shopToken || null === $externalId) {
  21.             throw new InvalidParameterException();
  22.         }
  23.         $payment $this->paymentRepository->findOneByExternalIdAndShopToken($externalId$shopToken);
  24.         if (null === $payment) {
  25.             throw new ResourceNotFoundException();
  26.         }
  27.         return new JsonResponse(['state' => $payment->getState()], JsonResponse::HTTP_OK);
  28.     }
  29. }