From c02b5301a9886127ade68e2d8eac0665f142222a Mon Sep 17 00:00:00 2001 From: AlfredoMate Date: Fri, 30 May 2025 22:23:27 +0200 Subject: [PATCH] fix update endpoint --- .../UpdateUserUseCase/UpdateUserCommandHandler.java | 2 +- src/main/java/io/autoinvestor/domain/model/User.java | 3 +-- .../infrastructure/repositories/EventMapper.java | 9 ++++++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/io/autoinvestor/application/UpdateUserUseCase/UpdateUserCommandHandler.java b/src/main/java/io/autoinvestor/application/UpdateUserUseCase/UpdateUserCommandHandler.java index e7f6e1f..46e2048 100644 --- a/src/main/java/io/autoinvestor/application/UpdateUserUseCase/UpdateUserCommandHandler.java +++ b/src/main/java/io/autoinvestor/application/UpdateUserUseCase/UpdateUserCommandHandler.java @@ -26,7 +26,7 @@ public class UpdateUserCommandHandler { public void handle (UpdateUserCommand command) { String userIdToUpdate = String.valueOf(readModel.getById(command.userId()) - .map(UserDTO::riskLevel) + .map(UserDTO::userId) .orElseThrow(() -> UserNotFound.with(command.userId()))); User user = this.eventStore.get(UserId.from(userIdToUpdate)); user.update(userIdToUpdate, command.riskLevel()); diff --git a/src/main/java/io/autoinvestor/domain/model/User.java b/src/main/java/io/autoinvestor/domain/model/User.java index 96bc5e7..b0765b3 100644 --- a/src/main/java/io/autoinvestor/domain/model/User.java +++ b/src/main/java/io/autoinvestor/domain/model/User.java @@ -65,10 +65,9 @@ protected void when(Event event) { } private void whenUserCreated(UserWasRegisteredEvent event) { - if (this.state != null) { + if (this.state == null) { this.state = UserState.empty(); } - assert this.state != null; this.state = this.state.withUserCreated(event); } diff --git a/src/main/java/io/autoinvestor/infrastructure/repositories/EventMapper.java b/src/main/java/io/autoinvestor/infrastructure/repositories/EventMapper.java index 29fc695..855508e 100644 --- a/src/main/java/io/autoinvestor/infrastructure/repositories/EventMapper.java +++ b/src/main/java/io/autoinvestor/infrastructure/repositories/EventMapper.java @@ -5,9 +5,7 @@ import io.autoinvestor.domain.events.Event; import io.autoinvestor.domain.events.EventId; import io.autoinvestor.domain.events.EventPayload; -import io.autoinvestor.domain.model.UserId; -import io.autoinvestor.domain.model.UserWasRegisteredEvent; -import io.autoinvestor.domain.model.UserWasRegisteredEventPayload; +import io.autoinvestor.domain.model.*; import org.springframework.stereotype.Component; import java.util.Date; @@ -45,6 +43,11 @@ public Event toDomain(EventDocument doc) { return UserWasRegisteredEvent.hydrate(id, aggId, payload, occurred, version); } + case UserWasUpdatedEvent.TYPE -> { + UserWasUpdatedEventPayload payload = + json.convertValue(doc.getPayload(), UserWasUpdatedEventPayload.class); + return UserWasUpdatedEvent.hydrate(id, aggId, payload, occurred, version); + } default -> throw new IllegalArgumentException( "Unknown event type: " + doc.getType()