Newer
Older
<?php
namespace App\Controller;
use App\Service\Action\ActionServiceInterface;
use App\Service\Dto\Classes\RecoveryCodeDto;
use App\Service\Dto\Classes\RecoveryDto;
use App\Service\Response\Classes\ProfileResponse;
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;
class ProfileController extends AbstractController
{
#[Route('/profile', name: 'profile', methods: ['GET'])]
#[OA\Response(
response: 200,
description: 'Ответ',
content: new OA\JsonContent(
ref: new Model(type: ProfileResponse::class, groups: ["message", "data", "profile"])
)
)]
public function profile(
ActionServiceInterface $profileService
): JsonResponse
{
return $profileService->getResponse();
}
#[Route('/profile/delete', name: 'profile_delete', methods: ['GET'])]
#[OA\Response(
response: 200,
description: 'Ответ',
content: new OA\JsonContent(
ref: new Model(type: Response::class, groups: ["message"])
)
)]
public function deleteProfile(
ActionServiceInterface $deleteProfileService,
): JsonResponse
{
return $deleteProfileService->getResponse();
}
#[Route('/profile/recovery', name: 'profile_recovery', methods: ['POST'])]
#[OA\RequestBody(
content: new OA\JsonContent(ref: new Model(type: RecoveryDto::class))
)]
#[OA\Response(
response: 200,
description: 'Ответ',
content: new OA\JsonContent(
ref: new Model(type: Response::class, groups: ["message"])
)
)]
public function recoveryProfile(
ActionServiceInterface $recoveryProfileService,
): JsonResponse
{
return $recoveryProfileService->getResponse();
}
#[Route('/profile/recovery/check', name: 'profile_recovery_check', methods: ['POST'])]
#[OA\RequestBody(
content: new OA\JsonContent(ref: new Model(type: RecoveryCodeDto::class))
)]
#[OA\Response(
response: 200,
description: 'Ответ',
content: new OA\JsonContent(
ref: new Model(type: Response::class, groups: ["message"])
)
)]
public function recoveryCodeProfile(
ActionServiceInterface $checkRecoveryService,
): JsonResponse
{
return $checkRecoveryService->getResponse();
}
}