Last active
September 30, 2020 11:40
-
-
Save thiagocordeiro/ac57a20b9e1fd3d27a263fc4c72f077f to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* @Route('/users', methods={'POST'}) | |
*/ | |
class RegisterUserController | |
{ | |
private RegisterUserService $service; | |
public function __construct(RegisterUserService $service) | |
{ | |
$this->service = $service; | |
} | |
public function __invoke(Request $request): JsonResponse | |
{ | |
try { | |
$registerUser = new RegisterUser( | |
$request->get('name'), | |
new Email($request->get('email')), | |
new Password($request->get('password')), | |
); | |
} catch (InvalidName | InvalidEmail | WeakPassword $e) { | |
throw new HttpException(Response::HTTP_BAD_REQUEST, $e->getMessage(), $e); | |
} | |
try { | |
$userRegistered = $this->service->register($registerUser); | |
} catch (UserAlreadyRegistered $e) { | |
throw new HttpException(Response::HTTP_CONFLICT, $e->getMessage(), $e); | |
} | |
return new JsonResponse([ | |
'id' => $userRegistered->getId(), | |
]); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment