diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php index 64216889430ff099ced7d0fdd9a0798fa09eb6d5..7e8f7ecb07b4e5c209fbf0f2823de6ed224b095a 100644 --- a/src/Controller/HomeController.php +++ b/src/Controller/HomeController.php @@ -7,7 +7,8 @@ use App\Requests\{ SortPriceRequest, SearchRequest, UniqElementsRequest, - MenuRequest + MenuRequest, + CountFriday13Request }; use DateTimeImmutable; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; @@ -69,13 +70,10 @@ class HomeController extends AbstractController return $this->json(["Days before NY:" => $result]); } - #[Route( - '/countFriday13/{year}', - name: 'countFriday13', - requirements: ['year' => '(?<!-)(?<!\d)\d+'], - methods: ['GET'])] - public function countFriday13(int $year): Response + #[Route('/countFriday13', name: 'countFriday13', methods: ['GET'])] + public function countFriday13(CountFriday13Request $request): Response { + $year = $request->getRequest()->get('year'); $fridays = array(); try { foreach ($this->functions->countFriday13($year) as $date) { diff --git a/src/Requests/CountFriday13Request.php b/src/Requests/CountFriday13Request.php new file mode 100644 index 0000000000000000000000000000000000000000..e34f1b85da36cf2aaf57490d1f23ccdfaef3925c --- /dev/null +++ b/src/Requests/CountFriday13Request.php @@ -0,0 +1,21 @@ +<?php + +namespace App\Requests; + +use Symfony\Component\Validator\Constraints as Assert; + +class CountFriday13Request extends BaseRequest +{ + #[Assert\Type('int')] + #[Assert\Positive] + public int $year; + + protected function populate(): void + { + foreach ($this->getRequest()->query->all() as $property => $value) { + if (property_exists($this, $property)) { + $this->{$property} = $value; + } + } + } +} \ No newline at end of file