<?php
namespace App\Controller;
use App\Exception\ActivateException;
use App\Model\GetRenewRequestDTO;
use App\Service\Certificate\Activate;
use App\Service\Certificate\CertificateTransfer;
use App\Service\State\StateUser;
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 RenewController extends AbstractController
{
#[Route('renew', name: 'renew', methods: ['GET'])]
public function index(
#[MapQueryString] GetRenewRequestDTO $renewRequest,
Activate $activateService,
LoggerInterface $logger,
StateUser $stateUser,
): Response
{
$logger->notice('Renew have got get request with parameters', (array) $renewRequest);
$data = new CertificateTransfer(CertificateTransfer::prepareActivateParams($renewRequest));
$data->setCPanelUser($stateUser->getUser()->getUserIdentifier());
try {
$activateService->activate($data, true);
} catch (ActivateException $exception) {
return (new Response())->setStatusCode(Response::HTTP_INTERNAL_SERVER_ERROR);
}
return (new Response())->setStatusCode(Response::HTTP_NO_CONTENT);
}
}