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