Loading src/Controller/HomeController.php +4 −5 Original line number Diff line number Diff line Loading @@ -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); Loading src/Validation/ArrayValidation.php +4 −15 Original line number Diff line number Diff line Loading @@ -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 Loading
src/Controller/HomeController.php +4 −5 Original line number Diff line number Diff line Loading @@ -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); Loading
src/Validation/ArrayValidation.php +4 −15 Original line number Diff line number Diff line Loading @@ -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