vendor/shopware/core/System/Snippet/Api/SnippetController.php line 86

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\System\Snippet\Api;
  3. use Shopware\Core\Framework\Context;
  4. use Shopware\Core\Framework\DataAbstractionLayer\Exception\InvalidLimitQueryException;
  5. use Shopware\Core\Framework\Log\Package;
  6. use Shopware\Core\Framework\Routing\Annotation\RouteScope;
  7. use Shopware\Core\Framework\Routing\Annotation\Since;
  8. use Shopware\Core\System\Snippet\Files\SnippetFileCollection;
  9. use Shopware\Core\System\Snippet\SnippetService;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Symfony\Component\HttpFoundation\JsonResponse;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. /**
  16.  * @Route(defaults={"_routeScope"={"api"}})
  17.  */
  18. #[Package('system-settings')]
  19. class SnippetController extends AbstractController
  20. {
  21.     /**
  22.      * @var SnippetService
  23.      */
  24.     private $snippetService;
  25.     /**
  26.      * @var SnippetFileCollection
  27.      */
  28.     private $snippetFileCollection;
  29.     /**
  30.      * @internal
  31.      */
  32.     public function __construct(
  33.         SnippetService $snippetService,
  34.         SnippetFileCollection $snippetFileCollection
  35.     ) {
  36.         $this->snippetService $snippetService;
  37.         $this->snippetFileCollection $snippetFileCollection;
  38.     }
  39.     /**
  40.      * @Since("6.0.0.0")
  41.      * @Route("/api/_action/snippet-set", name="api.action.snippet-set.getList", methods={"POST"})
  42.      */
  43.     public function getList(Request $requestContext $context): Response
  44.     {
  45.         $limit $request->request->getInt('limit'25);
  46.         if ($limit 1) {
  47.             throw new InvalidLimitQueryException($limit);
  48.         }
  49.         return new JsonResponse(
  50.             $this->snippetService->getList(
  51.                 $request->request->getInt('page'1),
  52.                 $limit,
  53.                 $context,
  54.                 $request->request->all('filters'),
  55.                 $request->request->all('sort')
  56.             )
  57.         );
  58.     }
  59.     /**
  60.      * @Since("6.0.0.0")
  61.      * @Route("/api/_action/snippet/filter", name="api.action.snippet.get.filter", methods={"GET"})
  62.      */
  63.     public function getFilterItems(Context $context): Response
  64.     {
  65.         $filter $this->snippetService->getRegionFilterItems($context);
  66.         return new JsonResponse([
  67.             'total' => \count($filter),
  68.             'data' => $filter,
  69.         ]);
  70.     }
  71.     /**
  72.      * @Since("6.0.0.0")
  73.      * @Route("/api/_action/snippet-set/baseFile", name="api.action.snippet-set.base-file", methods={"GET"})
  74.      */
  75.     public function getBaseFiles(): Response
  76.     {
  77.         $files $this->snippetFileCollection->getFilesArray();
  78.         return new JsonResponse([
  79.             'items' => $files,
  80.             'total' => \count($files),
  81.         ]);
  82.     }
  83.     /**
  84.      * @Since("6.0.0.0")
  85.      * @Route("/api/_action/snippet-set/author", name="api.action.snippet-set.author", methods={"GET"})
  86.      */
  87.     public function getAuthors(Context $context): Response
  88.     {
  89.         $authors $this->snippetService->getAuthors($context);
  90.         return new JsonResponse([
  91.             'total' => \count($authors),
  92.             'data' => $authors,
  93.         ]);
  94.     }
  95. }