<?php | |
// src/User/Message/createUserHandler.php | |
namespace App\User\Handler; | |
use Doctrine\ORM\EntityManagerInterface; | |
use Exception; | |
use App\Domain\User\Entity\User; | |
use App\Domain\Translation\ValueObject\ErrorMessage; | |
use App\User\Message\CreateUserMessage; | |
use Symfony\Component\Messenger\Handler\MessageHandlerInterface; | |
/** | |
* Class CreateUserHandler | |
* | |
* @package App\User\Handler | |
* @author DEVŌT <devot.team> | |
*/ | |
class CreateUserHandler implements MessageHandlerInterface | |
{ | |
/** | |
* @param EntityManagerInterface $entityManager | |
*/ | |
public function __construct(private EntityManagerInterface $entityManager) | |
{ | |
} | |
/** | |
* @param CreateUserMessage $message | |
* @return UserRepresentation | |
* @throws Exception | |
*/ | |
public function __invoke(CreateUserMessage $message): UserRepresentation | |
{ | |
$user = new User(); | |
$user->setName($message->getName()); | |
$user->setUuid($message->getUuid()); | |
try { | |
$this->entityManager->persist($user); | |
$this->entityManager->flush(); | |
} catch (Exception $exception) { | |
throw new Exception($exception->getMessage()); | |
} | |
return UserRepresentation::fromEntity($user); | |
} | |
} |