Commit 498dda71 authored by Адлан Шамавов's avatar Адлан Шамавов
Browse files

refactoring

parent 258c3f56
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -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);
+4 −18
Original line number Diff line number Diff line
@@ -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