Hola,
Estoy implementado toda la parte de eventos con Broadway, he creado el evento cuando un usuario se ha registrado:
CreateUserUseCase:
$user = User::create( $createUserRequest->firstName(), $createUserRequest->email(), $createUserRequest->password() ); $this->userEventRepository->store($user); return new UserResponse($user);
Luego en el dominio, tengo la creación del evento:
User:
public function getAggregateRootId(): string { return $this->id->value(); }
public static function create( FirstName $firstName, Email $email, Password $password, ): self { $user = new self( UUid::uuid4(), $firstName, $email, $password ); $user->apply(UserWasCreated::create( $user->id(), $user->firstName(), $user->email(), $user->password() )); return $user; } protected function applyUserWasCreated(UserWasCreated $userWasCreated): void { $this->id = $userWasCreated->id(); $this->firstName = $userWasCreated->firstName(); $this->email = $userWasCreated->email(); $this->password = $userWasCreated->password(); }
Pero el problema que tengo es cuando un usuario se da de baja:
– ¿Cuál sería la mejor manera de implementarlo con Broadway?
– ¿Tengo que agregar un nuevo evento? – Si lo hago me genera un error de DuplicatePlayheadException
Gracias 🙂
- ÁLex Pérez publicó hace 2 años
- último editado hace 2 años
- Debes iniciar sesión para publicar comentarios
Hola Alex,
Sí, debes crear un evento nuevo al dar de baja el usuario. Respecto al error DuplicatePlayheadException, no puedo decirte mucho ya que no tengo experiencia con la librería Broadway, pero verifica que no se esté guardando el evento con algún dato duplicado como el ID.
- admin resuelto hace 2 años
- Debes iniciar sesión para publicar comentarios
Con respecto al tema del error, he visto que Broadway lo interpretaba como un nuevo evento y lo intentaba añadir en el tabla de events y al detectar que ya existía pues generaba la excepción DuplicatePlayheadException
- ÁLex Pérez resuelto hace 2 años
- último editado hace 2 años
- Debes iniciar sesión para publicar comentarios