custom/plugins/KayloManagement/src/Storefront/Controller/WorkshopController.php line 74

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Kaylo\Management\Storefront\Controller;
  4. use DateTime;
  5. use Exception;
  6. use Kaylo\Management\Core\Content\Workshop\WorkshopDefinition;
  7. use Kaylo\Management\Service\OrderService;
  8. use Kaylo\Management\Service\WorkshopService;
  9. use Kaylo\Management\Storefront\KayloController;
  10. use Kaylo\Management\Storefront\Response\WorkshopResponse;
  11. use Shopware\Core\Checkout\Cart\Cart;
  12. use Shopware\Core\Framework\DataAbstractionLayer\DefinitionInstanceRegistry;
  13. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  14. use Shopware\Core\Framework\DataAbstractionLayer\Search\RequestCriteriaBuilder;
  15. use Shopware\Core\Framework\Routing\Annotation\Entity;
  16. use Shopware\Core\Framework\Routing\Annotation\RouteScope;
  17. use Shopware\Core\System\SalesChannel\SalesChannelContext;
  18. use Shopware\Storefront\Controller\StorefrontController;
  19. use Symfony\Component\HttpFoundation\JsonResponse;
  20. use Symfony\Component\HttpFoundation\Request;
  21. use Symfony\Component\Routing\Annotation\Route;
  22. /**
  23.  * @RouteScope(scopes={"store-api"})
  24.  */
  25. class WorkshopController extends StorefrontController implements KayloController
  26. {
  27.     protected WorkshopService $workshopService;
  28.     public function __construct(
  29.         WorkshopService $workshopService
  30.     ) {
  31.         $this->workshopService $workshopService;
  32.     }
  33.     /**
  34.      * @Route("/create", name="create", defaults={"XmlHttpRequest"=true}, methods={"POST"})
  35.      * @param Request $request
  36.      * @param SalesChannelContext $context
  37.      * @return JsonResponse
  38.      */
  39.     public function create(Request $requestSalesChannelContext $context): JsonResponse
  40.     {
  41.         $result $this->workshopService->createWorkshop($context->getContext());
  42.         return $this->json($result);
  43.     }
  44.     /**
  45.      * @Entity("kaylo_management_workshop")
  46.      * @Route("/get/{workshopId}", name="getById", defaults={"XmlHttpRequest"=true}, methods={"GET"})
  47.      * @param string $workshopId
  48.      * @param SalesChannelContext $context
  49.      * @return JsonResponse
  50.      */
  51.     public function getById(string $workshopIdSalesChannelContext $context): JsonResponse
  52.     {
  53.         $result $this->workshopService->getById($workshopId$context->getContext());
  54.         return $this->json($result);
  55.     }
  56.     /**
  57.      * @Entity("kaylo_management_workshop")
  58.      * @Route("/list", name="list", defaults={"XmlHttpRequest"=true}, methods={"POST"})
  59.      * @param Request $request
  60.      * @param SalesChannelContext $context
  61.      * @param Criteria $criteria
  62.      * @return WorkshopResponse
  63.      */
  64.     public function list(Request $requestSalesChannelContext $contextCriteria $criteria): WorkshopResponse
  65.     {
  66.         $workshops $this->workshopService->list($criteria$context->getContext());
  67.         //        return $this->json($workshops);
  68.         return new WorkshopResponse($workshops);
  69.     }
  70.     /**
  71.      * @Entity("kaylo_management_workshop")
  72.      * @Route("/addToCart", name="addToCart", defaults={"XmlHttpRequest"=true}, methods={"POST"})
  73.      * @param Request $request
  74.      * @param SalesChannelContext $context
  75.      * @return JsonResponse
  76.      */
  77.     public function addToCart(Request $requestSalesChannelContext $context)
  78.     {
  79.         $workshopId $request->get('workshopId');
  80.         $result $this->workshopService->addToCart($workshopId$context);
  81.         return $this->json($result);
  82.     }
  83. }