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