src/Controller/Administration/CountriesPerCspController.php line 43

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controller\Administration;
  4. use Symfony\Component\HttpFoundation\{
  5.     Request,
  6.     Response
  7. };
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
  10. use App\Common\Controllers\CrmAbstractController;
  11. use App\Entity\{CspCountryCustomer};
  12. use App\Services\Administration\CountryService;
  13. class CountriesPerCspController extends CrmAbstractController
  14. {
  15.     /**
  16.      * @see CrmAbstractController
  17.      */
  18.     protected function initModuleDetails(): array
  19.     {
  20.         return [
  21.             'entityClassName' => Country::class,
  22.             'moduleService' => CountryService::class,
  23.         ];
  24.     }
  25.     #[Route(
  26.         '/administration/customer/{id}/csp/{cId}/countries-per-csp',
  27.         name'administration_customer_countries_per_csp',
  28.         options: ['expose' => true])
  29.     ]
  30.     #[ParamConverter('customer', class: Customer::class, options: ['mapping' => ['id' => 'id']])]
  31.     #[ParamConverter('csp', class: Csp::class, options: ['mapping' => ['cId' => 'id']])]
  32.     public function index(CountryService $countryServiceCustomer $customerCsp $csp): Response
  33.     {
  34.         return new Response($countryService->getCountriesPerCsp($csp$customer->getExcludedCsps()));
  35.     }
  36.     #[Route('/administration/csp/{id}/countries/ddl/{type}'name'administration_csp_countries_ddl'options: ['expose' => true])]
  37.     public function cspCountriesDdl(CountryService $countryServiceCsp $csp, ?string $type 'list'): Response
  38.     {
  39.         $template = ('multiple' === $type)
  40.             ? 'csp_countries_multiple_ddl.html.twig'
  41.             'csp_countries_ddl.html.twig'
  42.         ;
  43.         return $this->render(
  44.             sprintf('administration/csp/%s'$template), [
  45.                 'countries' => json_decode($countryService->getCountriesPerCsp($csp)),
  46.             ]
  47.         );
  48.     }
  49. }