src/Rest/Traits/Actions/Authenticated/CreateAction.php
<?php
declare(strict_types = 1);
/**
* /src/Rest/Traits/Actions/Authenticated/CreateAction.php
*
* @author TLe, Tarmo Leppänen <tarmo.leppanen@pinja.com>
*/
namespace App\Rest\Traits\Actions\Authenticated;
use App\DTO\RestDtoInterface;
use App\Rest\Traits\Methods\CreateMethod;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter;
use Symfony\Component\Security\Http\Attribute\IsGranted;
use Throwable;
/**
* Trait to add 'createAction' for REST controllers for authenticated users.
*
* @see \App\Rest\Traits\Methods\CreateMethod for detailed documents.
*
* @package App\Rest\Traits\Actions\Authenticated
* @author TLe, Tarmo Leppänen <tarmo.leppanen@pinja.com>
*/
trait CreateAction
{
use CreateMethod;
/**
* @throws Throwable
*/
#[Route(
path: '',
methods: [Request::METHOD_POST],
)]
#[IsGranted(AuthenticatedVoter::IS_AUTHENTICATED_FULLY)]
public function createAction(Request $request, RestDtoInterface $restDto): Response
{
return $this->createMethod($request, $restDto);
}
}