<?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); | |
} | |
} |