custom/plugins/CrswCleverReachOfficial/src/Controller/Storefront/AsyncProcessController.php line 44

Open in your IDE?
  1. <?php
  2. namespace Crsw\CleverReachOfficial\Controller\Storefront;
  3. use Crsw\CleverReachOfficial\Components\Utility\Bootstrap;
  4. use Crsw\CleverReachOfficial\Components\Utility\Initializer;
  5. use Crsw\CleverReachOfficial\Core\Infrastructure\ServiceRegister;
  6. use Crsw\CleverReachOfficial\Core\Infrastructure\TaskExecution\Interfaces\AsyncProcessService;
  7. use Shopware\Core\Framework\Routing\Annotation\RouteScope;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\JsonResponse;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. /**
  12.  * Class AsyncProcessController
  13.  *
  14.  * @package Crsw\CleverReachOfficial\Controller\Storefront
  15.  */
  16. class AsyncProcessController extends AbstractController
  17. {
  18.     /**
  19.      * AsyncProcessController constructor.
  20.      *
  21.      * @param Initializer $initializer
  22.      */
  23.     public function __construct(
  24.         Initializer $initializer
  25.     ) {
  26.         Bootstrap::init();
  27.         $initializer->registerServices();
  28.     }
  29.     /**
  30.      * Async process starter endpoint
  31.      *
  32.      * @RouteScope(scopes={"storefront"})
  33.      * @Route(path="/cleverreach/async/{guid}", name="cleverreach.async",
  34.      *      defaults={"csrf_protected"=false}, methods={"GET", "POST"})
  35.      *
  36.      * @param string $guid
  37.      *
  38.      * @return JsonResponse
  39.      */
  40.     public function run(string $guid): JsonResponse
  41.     {
  42.         $this->getAsyncProcessService()->runProcess($guid);
  43.         return new JsonResponse(['success' => true]);
  44.     }
  45.     /**
  46.      * @return AsyncProcessService
  47.      */
  48.     private function getAsyncProcessService(): AsyncProcessService
  49.     {
  50.         /** @noinspection PhpIncompatibleReturnTypeInspection */
  51.         return ServiceRegister::getService(AsyncProcessService::class);
  52.     }
  53. }