src/Component/Core/Common/Controller/Resource/RFQController.php line 17

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace BitBag\OpenMarketplace\Component\Core\Common\Controller\Resource;
  4. use Sylius\Bundle\ResourceBundle\Controller\ResourceController;
  5. use Symfony\Component\HttpFoundation\RedirectResponse;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\HttpFoundation\Session\Session;
  9. final class RFQController extends ResourceController
  10. {
  11.     private const LOGIN_PATH '/%s/login';
  12.     public function createAction(Request $request): Response
  13.     {
  14.         /** @var RedirectResponse $response */
  15.         $response parent::createAction($request);
  16.         if (
  17.             $request->isMethod('POST')
  18.             && $response instanceof RedirectResponse
  19.             && $response->getTargetUrl() === sprintf(self::LOGIN_PATH$request->getLocale())
  20.         ) {
  21.             $rfqFormData $request->request->all();
  22.             $session $request->getSession();
  23.             $session->set('rfq_form_data'$rfqFormData);
  24.             $refererUrl $request->headers->get('referer');
  25.             if ($refererUrl) {
  26.                 $session->set('_security.shop.target_path'$refererUrl);
  27.             }
  28.             return $response;
  29.         }
  30.         if (
  31.             !$this->getUser()
  32.             && $request->isMethod('POST')
  33.             && $response instanceof RedirectResponse
  34.         ) {
  35.             /** @var Session $session */
  36.             $session $request->getSession();
  37.             $session->getFlashBag()->clear();
  38.             $this->addFlash('header''open_marketplace.rfq.request_completion.header');
  39.             $this->addFlash('warning''open_marketplace.rfq.request_completion.message');
  40.             return $response;
  41.         }
  42.         if (422 === $response->getStatusCode() || 413 === $response->getStatusCode()) {
  43.             $this->addFlash('error''open_marketplace.rfq.max_attachments_message');
  44.             return $this->redirectToRoute('sylius_shop_product_show', [
  45.                 'slug' => $request->get('slug'''),
  46.                 'id' => $request->get('productId'''),
  47.             ]);
  48.         }
  49.         return $response;
  50.     }
  51. }