diff --git a/src/Action/Functions.php b/src/Action/Functions.php index cdabbc38cd25243186aaacebeeb580639d8fe2de..16a45000e3a11bdac577b0fb07c1224690f9c706 100644 --- a/src/Action/Functions.php +++ b/src/Action/Functions.php @@ -52,4 +52,4 @@ class Functions } return null; } -} +} \ No newline at end of file diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php index 8623303715e779eca04cb98ae2218e34cdc0dc41..d37e3ac95a108a5e4dc3092fbfd1858583cc83ae 100644 --- a/src/Controller/HomeController.php +++ b/src/Controller/HomeController.php @@ -4,9 +4,9 @@ namespace App\Controller; use App\Action\Functions; use App\Validation\ArrayValidation; -use Symfony\Component\HttpFoundation\Request; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Attribute\Route; class HomeController extends AbstractController @@ -18,6 +18,17 @@ class HomeController extends AbstractController $this->functions = $functions; } + #[Route('/func1', name: 'home', methods: ['POST'])] + public function func1(Request $request): Response + { + $array = $request->get('arr'); + if (!ArrayValidation::validateFunc1($array)) { + return new Response("Invalid array"); + } + $array = $this->functions->sortPrice($array); + return $this->json($array); + } + #[Route('/', name: 'home', methods: ['POST'])] public function home(Request $request): Response { diff --git a/src/Validation/ArrayValidation.php b/src/Validation/ArrayValidation.php index 739cea17449e518852708f36bbe0fe196b3efbd1..9f715d5474295bd18b50371798c1e5956ac5f734 100644 --- a/src/Validation/ArrayValidation.php +++ b/src/Validation/ArrayValidation.php @@ -2,12 +2,15 @@ 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 validateFunc1(array $array): bool + { + $prices = array_column($array, 'price'); + $counts = array_column($array, 'count'); + return ctype_digit(implode('',$prices)) && ctype_digit(implode('', $counts)); + } + public static function validate(array $array): ConstraintViolationListInterface { $validator = Validation::createValidator();