diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php index d37e3ac95a108a5e4dc3092fbfd1858583cc83ae..ef9c777b9c632d473a13e6e61e4856e44d6a169c 100644 --- a/src/Controller/HomeController.php +++ b/src/Controller/HomeController.php @@ -29,14 +29,13 @@ class HomeController extends AbstractController return $this->json($array); } - #[Route('/', name: 'home', methods: ['POST'])] - public function home(Request $request): Response + #[Route('/func2', name: 'func2', methods: ['POST'])] + public function func2(Request $request): Response { $id = $request->query->getInt('id'); $array = $request->get('arr'); - $errors = ArrayValidation::validate($array); - if (count($errors) > 0) { - return new Response((string)$errors); + if (!ArrayValidation::validateFunc2($array)) { + return new Response("Invalid array"); } $result = $this->functions->search($array, $id); return $this->json($result); diff --git a/src/Validation/ArrayValidation.php b/src/Validation/ArrayValidation.php index 9f715d5474295bd18b50371798c1e5956ac5f734..473d0bad6e2493559bed06358b263c11626f341a 100644 --- a/src/Validation/ArrayValidation.php +++ b/src/Validation/ArrayValidation.php @@ -11,21 +11,10 @@ class ArrayValidation return ctype_digit(implode('',$prices)) && ctype_digit(implode('', $counts)); } - public static function validate(array $array): ConstraintViolationListInterface + public static function validateFunc2(array $array): bool { - $validator = Validation::createValidator(); - $constraints = new Assert\Optional([ - new Assert\Collection([ - new Assert\Optional([ - new Assert\Type('array'), - new Assert\Collection([ - 'id' => new Assert\Type('int'), - 'name' => new Assert\Type('string'), - 'age' => new Assert\Type('int'), - ]) - ]) - ]) - ]); - return $validator->validate($array, $constraints); + $ids = array_column($array, 'id'); + $ages = array_column($array, 'age'); + return ctype_digit(implode('', $ids)) && ctype_digit(implode('', $ages)); } } \ No newline at end of file