<?php
namespace App\Controller;
use App\Exception\ActivateException;
use App\Model\ActivationRequestDTO;
use App\Service\Certificate\AsyncActivateFlowService;
use App\Service\NcPlugin\PluginException;
use Psr\Log\LoggerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Attribute\MapQueryString;
use Symfony\Component\Routing\Annotation\Route;
class ActivateController extends AbstractController
{
/**
* @throws ActivateException
* @throws PluginException
* @throws \JsonException
*/
#[Route('activate', name: 'activate.async', methods: ['GET'])]
public function asyncActivate(
#[MapQueryString] ActivationRequestDTO $activationRequest,
AsyncActivateFlowService $asyncService,
LoggerInterface $logger
): Response
{
$logger->notice('AsyncActivate have got get request with parameters', (array) $activationRequest);
$asyncService->activate($activationRequest);
return (new Response())->setStatusCode(Response::HTTP_NO_CONTENT);
}
}