From 80f586c7afb3811a3d45b60d281094a106691df1 Mon Sep 17 00:00:00 2001
From: "a.shamavov" <a.shamavov@iqdev.digital>
Date: Tue, 16 Apr 2024 11:23:09 +0500
Subject: [PATCH] fix

---
 src/Controller/HomeController.php     | 12 +++++-------
 src/Requests/CountFriday13Request.php | 21 +++++++++++++++++++++
 2 files changed, 26 insertions(+), 7 deletions(-)
 create mode 100644 src/Requests/CountFriday13Request.php

diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php
index 6421688..7e8f7ec 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 0000000..e34f1b8
--- /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
-- 
GitLab