Commit fd752d7e authored by Nikita Chernykh's avatar Nikita Chernykh
Browse files

Merge branch 'PTPS|Controller_3' into 'main'

Ptps|controller 3

See merge request !3
parents 22fff370 b502dc15
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
<?php

namespace App\Actions;

class UniqElementsAction
{
    /**
     * Удаляет дубликаты, оставив только уникальные значения
     * @param array $array
     * @return array
     */
    public static function act(array $array): array
    {
        return array_unique($array, SORT_REGULAR);
    }
}
 No newline at end of file
+19 −0
Original line number Diff line number Diff line
<?php

namespace App\Controller;

use App\Actions\UniqElementsAction;
use App\Requests\UniqElementsRequest;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;

class UniqElementsController extends AbstractController
{
    #[Route('/uniq/elements', name: 'app_uniq_elements', methods: ['POST'])]
    public function index(UniqElementsRequest $request, UniqElementsAction $action): Response
    {
        return new JsonResponse($action->act($request->serialise()));
    }
}
+21 −0
Original line number Diff line number Diff line
<?php

namespace App\Requests;

use Symfony\Component\Validator\Constraints\Type;
use Symfony\Contracts\Service\Attribute\Required;

class UniqElementsRequest extends BaseRequest
{
    #[Type('array')]
    #[Required]
    public $data;

    /**
     * @return mixed
     */
    public function serialise(): mixed
    {
        return $this->data;
    }
}
+20 −0
Original line number Diff line number Diff line
{% extends 'base.html.twig' %}

{% block title %}Hello UniqElementsController!{% endblock %}

{% block body %}
<style>
    .example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; }
    .example-wrapper code { background: #F5F5F5; padding: 2px 6px; }
</style>

<div class="example-wrapper">
    <h1>Hello {{ controller_name }}! ✅</h1>

    This friendly message is coming from:
    <ul>
        <li>Your controller at <code>/home/tamanit/myProj/iqdevTranningProgram/src/Controller/UniqElementsController.php</code></li>
        <li>Your template at <code>/home/tamanit/myProj/iqdevTranningProgram/templates/uniq_elements/index.html.twig</code></li>
    </ul>
</div>
{% endblock %}