From 498dda71128b8473a3c7a453b9e90c6339d8a986 Mon Sep 17 00:00:00 2001
From: "a.shamavov" <a.shamavov@iqdev.digital>
Date: Fri, 12 Apr 2024 17:57:49 +0500
Subject: [PATCH] refactoring

---
 src/Controller/HomeController.php  |  9 ++++-----
 src/Validation/ArrayValidation.php | 22 ++++------------------
 2 files changed, 8 insertions(+), 23 deletions(-)

diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php
index 175e9bc..6bec608 100644
--- a/src/Controller/HomeController.php
+++ b/src/Controller/HomeController.php
@@ -18,13 +18,12 @@ class HomeController extends AbstractController
         $this->functions = $functions;
     }
 
-    #[Route('/', name: 'home', methods: ['POST'])]
-    public function home(Request $request): Response
+    #[Route('/func1', name: 'home', methods: ['POST'])]
+    public function func1(Request $request): Response
     {
         $array = $request->get('arr');
-        $errors = ArrayValidation::validate($array);
-        if (count($errors) > 0) {
-            return new Response((string)$errors);
+        if (!ArrayValidation::validateFunc1($array)) {
+            return new Response("Invalid array");
         }
         $array = $this->functions->sortPrice($array);
         return $this->json($array);
diff --git a/src/Validation/ArrayValidation.php b/src/Validation/ArrayValidation.php
index ea6eb8a..2c33e61 100644
--- a/src/Validation/ArrayValidation.php
+++ b/src/Validation/ArrayValidation.php
@@ -2,26 +2,12 @@
 
 namespace App\Validation;
 
-use Symfony\Component\Validator\Validation;
-use Symfony\Component\Validator\Constraints as Assert;
-use Symfony\Component\Validator\ConstraintViolationListInterface;
-
 class ArrayValidation
 {
-    public static function validate(array $array): ConstraintViolationListInterface
+    public static function validateFunc1(array $array): bool
     {
-        $validator = Validation::createValidator();
-        $constraints = new Assert\Optional([
-            new Assert\Collection([
-                new Assert\Optional([
-                    new Assert\Type('array'),
-                    new Assert\Collection([
-                        'price' => new Assert\Type('int'),
-                        'count' => new Assert\Type('int')
-                    ])
-                ])
-            ])
-        ]);
-        return $validator->validate($array, $constraints);
+        $prices = array_column($array, 'price');
+        $counts = array_column($array, 'count');
+        return ctype_digit(implode('',$prices)) && ctype_digit(implode('', $counts));
     }
 }
\ No newline at end of file
-- 
GitLab