Newer
Older
<?php
namespace App\Controller;
use App\Service\Action\ActionServiceInterface;
use App\Service\Dto\Classes\ChangePasswordDto;
use App\Service\Dto\Classes\RecoveryDto;
use App\Service\Dto\Classes\RegisterCodeDto;
use App\Service\Dto\Classes\RegisterDto;
use App\Service\Response\Classes\Response;
use Nelmio\ApiDocBundle\Annotation\Model;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Attribute\Route;
#[OA\Tag(name: 'Авторизация')]
#[OA\Response(
response: 200,
description: 'Ответ',
content: new OA\JsonContent(
ref: new Model(type: Response::class, groups: ["message"])
)
)]
class AuthController extends AbstractController
{
#[Route('/register', name: 'register', methods: ['POST'])]
#[OA\RequestBody(
content: new OA\JsonContent(ref: new Model(type: RegisterDto::class))
)]
public function register(
ActionServiceInterface $registerService
): JsonResponse
{
return $registerService->getResponse();
}
#[Route('/register/send', name: 'register_send', methods: ['GET'])]
public function sendRegisterCode(
ActionServiceInterface $sendRegisterService,
): JsonResponse
{
return $sendRegisterService->getResponse();
}
#[Route('/register/check', name: 'register_check', methods: ['POST'])]
#[OA\RequestBody(
content: new OA\JsonContent(ref: new Model(type: RegisterCodeDto::class))
)]
public function checkRegisterCode(
ActionServiceInterface $checkRegisterService
): JsonResponse
{
return $checkRegisterService->getResponse();
}
#[Route('/password/reset', name: 'password_reset', methods: ['POST'])]
#[OA\RequestBody(
content: new OA\JsonContent(ref: new Model(type: ChangePasswordDto::class))
)]
public function resetPassword(ActionServiceInterface $resetPasswordService): JsonResponse
{
return $resetPasswordService->getResponse();
}
#[Route('/password/send', name: 'password_send', methods: ['POST'])]
#[OA\RequestBody(
content: new OA\JsonContent(ref: new Model(type: RecoveryDto::class))
)]
public function sendResetPassword(ActionServiceInterface $sendPasswordCodeService): JsonResponse
{
return $sendPasswordCodeService->getResponse();
}
#[Route('/password/reset/check', name: 'password_reset_check', methods: ['POST'])]
#[OA\RequestBody(
content: new OA\JsonContent(ref: new Model(type: ResetPasswordCodeDto::class))
)]
public function resetCheckPassword(ActionServiceInterface $resetPasswordCodeService): JsonResponse
{
return $resetPasswordCodeService->getResponse();
}