<?php
// src/User/Action/CreateUser.php
namespace App\User\Action;
use App\Core\REST\Action\AbstractApiAction;
use App\Core\REST\ValueObject\ApiResponse;
use App\Domain\User\Representation\UserRepresentation;
use App\User\Message\CreateUserMessage;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
/**
* Class CreateUser
*
* @package App\User\Action
* @author DEVŌT <devot.team>
*/
class CreateUser extends AbstractApiAction
{
/**
* Create new User
*
* @param Request $request
* @return ApiResponse
*/
#[Route('/user', name: 'api_v1_user', methods: ['POST'])]
public function __invoke(Request $request): ApiResponse
{
/** @var UserRepresentation $representation */
$representation = $this->handle(
CreateUserMessage::fromRequest($request)
);
return ApiResponse::created($representation);
}
}
view raw CreateUser.php hosted with ❤ by GitHub