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

Merge branch 'PTPS_Controller_4' into PTPS_Controller_5

parents 3da16093 e8304f56
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -23,5 +23,4 @@
/public/assets/
/assets/vendor/
###< symfony/asset-mapper ###

/.idea
 No newline at end of file
+8 −12
Original line number Diff line number Diff line
@@ -4,9 +4,6 @@ declare(strict_types=1);

namespace App\Action;

use DateTimeImmutable;
use Exception;

class Functions
{
    /**
@@ -155,4 +152,3 @@ class Functions
        return (int)$dateInterval->format("%a") + 1;
    }
}
 No newline at end of file
+44 −2
Original line number Diff line number Diff line
@@ -3,10 +3,10 @@
namespace App\Controller;

use App\Action\Functions;
use DateTimeImmutable;
use App\Validation\ArrayValidation;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Attribute\Route;

class HomeController extends AbstractController
@@ -18,6 +18,48 @@ 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('/func2', name: 'func2', methods: ['POST'])]
    public function func2(Request $request): Response
    {
        $id = $request->query->getInt('id');
        $array = $request->get('arr');
        if (!ArrayValidation::validateFunc2($array)) {
            return new Response("Invalid array");
        }
        $result = $this->functions->search($array, $id);
        return $this->json($result);
    }

    #[Route('/func3', name: 'home', methods: ['POST'])]
    public function home(Request $request): Response
    {
        $array = $request->get('arr');
        $result = $this->functions->uniqElements($array);
        return $this->json($result);
    }

    #[Route('/func4', name: 'home', methods: ['POST'])]
    public function func4(Request $request): Response
    {
        $array = $request->get('arr');
        if (!ArrayValidation::validateFunc4($array)) {
            return new Response("Invalid array");
        }
        $result = $this->functions->prepareMenu($array);
        return $this->json($result);
    }

    #[Route('/{day}/{month}/{year}', name: 'home')]
    public function home(int $day, int $month, int $year): Response
    {
+26 −0
Original line number Diff line number Diff line
<?php

namespace App\Validation;

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 validateFunc2(array $array): bool
    {
        $ids = array_column($array, 'id');
        $ages = array_column($array, 'age');
        return ctype_digit(implode('', $ids)) && ctype_digit(implode('', $ages));
    }

    public static function validateFunc4(array $array): bool
    {
        $depths = array_column($array, 'depth');
        return ctype_digit(implode('', $depths));
    }
}
 No newline at end of file