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