custom/plugins/EsmConfigurator/src/Storefront/Controller/ConfigurationController.php line 26

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace EsmConfigurator\Storefront\Controller;
  4. use EsmConfigurator\Core\Content\ResultText\ResultTextEntity;
  5. use Shopware\Core\Framework\DataAbstractionLayer\EntityRepository;
  6. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  7. use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\RangeFilter;
  8. use Shopware\Core\Framework\DataAbstractionLayer\Search\Sorting\FieldSorting;
  9. use Shopware\Core\System\SalesChannel\SalesChannelContext;
  10. use Shopware\Storefront\Controller\StorefrontController;
  11. use Symfony\Component\HttpFoundation\JsonResponse;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Shopware\Core\Framework\Routing\Annotation\RouteScope;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. /**
  16.  * @RouteScope(scopes={"storefront"})
  17.  */
  18. class ConfigurationController extends StorefrontController
  19. {
  20.     /**
  21.      * @Route("/configuration/text", name="frontend.configuration.text", methods={"GET"})
  22.      * @return JsonResponse
  23.      */
  24.     public function getResultText(Request $requestSalesChannelContext $context): JsonResponse
  25.     {
  26.         $score $request->get('score');
  27.         /** @var EntityRepository $resultTextRepository */
  28.         $resultTextRepository $this->container->get('esm_result_text.repository');
  29.         $criteria = new Criteria();
  30.         $criteria->addFilter(new RangeFilter('score', [RangeFilter::LTE => $score]));
  31.         $criteria->addSorting(new FieldSorting('score'FieldSorting::DESCENDING));
  32.         $criteria->setLimit(1);
  33.         /** @var ResultTextEntity $resultText */
  34.         $resultText $resultTextRepository->search($criteria$context->getContext())->getEntities()->first();
  35.         return new JsonResponse(["resultText" => $resultText]);
  36.     }
  37. }