custom/static-plugins/SamsonAmpc/src/Controller/VolumeDatabaseController.php line 44

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Samson\Controller;
  3. /***
  4.  *
  5.  * This file is part of the "SAMSON Shop" project.
  6.  *
  7.  * For the full copyright and license information, please read the
  8.  * LICENSE.txt file that was distributed with this source code.
  9.  *
  10.  *  (c) 2023
  11.  *
  12.  ***/
  13. use Samson\Pages\VolumeDatabase\VolumeDatabasePageLoader;
  14. use Samson\Route\VolumeDatabase\AbstractVolumeDatabaseLoadMediaRoute;
  15. use Shopware\Core\Framework\Validation\DataBag\RequestDataBag;
  16. use Shopware\Core\System\SalesChannel\SalesChannelContext;
  17. use Shopware\Storefront\Controller\StorefrontController;
  18. use Shopware\Core\Framework\Routing\Annotation\RouteScope;
  19. use Symfony\Component\HttpFoundation\Request;
  20. use Symfony\Component\HttpFoundation\Response;
  21. use Symfony\Component\Routing\Annotation\Route;
  22. /**
  23.  * @RouteScope(scopes={"storefront"})
  24.  */
  25. class VolumeDatabaseController extends StorefrontController
  26. {
  27.     private VolumeDatabasePageLoader $volumeDatabasePageLoader;
  28.     private AbstractVolumeDatabaseLoadMediaRoute $volumeDatabaseLoadMediaRoute;
  29.     public function __construct(VolumeDatabasePageLoader             $volumeDatabasePageLoader,
  30.                                 AbstractVolumeDatabaseLoadMediaRoute $volumeDatabaseLoadMediaRoute)
  31.     {
  32.         $this->volumeDatabasePageLoader $volumeDatabasePageLoader;
  33.         $this->volumeDatabaseLoadMediaRoute $volumeDatabaseLoadMediaRoute;
  34.     }
  35.     /**
  36.      * @Route("/volumedatabase", name="frontend.volumedatabase.page", methods={"GET"}, defaults={"XmlHttpRequest"=true})
  37.      */
  38.     public function index(Request $requestSalesChannelContext $salesChannelContext): Response
  39.     {
  40.         $page $this->volumeDatabasePageLoader->load($request$salesChannelContext);
  41.         return $this->renderStorefront('@Storefront/storefront/page/volume-database/index.html.twig',
  42.             [
  43.                 'page' => $page
  44.             ]);
  45.     }
  46.     /**
  47.      * @Route("/volumedatabase/search", name="frontend.volumedatabase.search", methods={"GET"}, defaults={"XmlHttpRequest"=true})
  48.      */
  49.     public function search(Request $requestSalesChannelContext $salesChannelContext): Response
  50.     {
  51.         $page $this->volumeDatabasePageLoader->search($request$salesChannelContext);
  52.         return $this->renderStorefront('@Storefront/storefront/page/volume-database/index.html.twig',
  53.             [
  54.                 'page' => $page
  55.             ]);
  56.     }
  57.     /**
  58.      * @Route("/volumedatabase/download/{id}", name="frontend.volumedatabase.download", methods={"GET"})
  59.      */
  60.     public function downloadFile(string $idRequest $requestSalesChannelContext $salesChannelContext): Response
  61.     {
  62.         return $this->volumeDatabaseLoadMediaRoute->loadMedia($id$request$salesChannelContext);
  63.     }
  64. }