diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php index 175e9bcf869e7181bb6421fec6b14ce6b05ec56d..6bec608d2ce1f860329650b3212a45092bffd8fe 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 ea6eb8a28cf09ed56e544435ad065364db734b6c..2c33e6128e41af265907acdc9a6384f187f5ae9c 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