diff --git a/src/main/java/io/autoinvestor/domain/events/Event.java b/src/main/java/io/autoinvestor/domain/events/Event.java index 259600d..940207c 100644 --- a/src/main/java/io/autoinvestor/domain/events/Event.java +++ b/src/main/java/io/autoinvestor/domain/events/Event.java @@ -1,9 +1,11 @@ package io.autoinvestor.domain.events; import io.autoinvestor.domain.Id; +import lombok.Getter; import java.util.Date; +@Getter public abstract class Event

{ private final EventId id; private final Id aggregateId; @@ -33,28 +35,4 @@ protected Event(EventId id, Id aggregateId, String type, P payload, Date occurre this.occurredAt = occurredAt; this.version = version; } - - public EventId getId() { - return id; - } - - public Id getAggregateId() { - return aggregateId; - } - - public String getType() { - return type; - } - - public P getPayload() { - return payload; - } - - public Date getOccurredAt() { - return occurredAt; - } - - public int getVersion() { - return version; - } } diff --git a/src/main/java/io/autoinvestor/domain/model/Decision.java b/src/main/java/io/autoinvestor/domain/model/Decision.java index af2e195..6ffa1b6 100644 --- a/src/main/java/io/autoinvestor/domain/model/Decision.java +++ b/src/main/java/io/autoinvestor/domain/model/Decision.java @@ -52,6 +52,9 @@ protected void when(Event e) { } private void whenDecisionTaken(DecisionTakenEvent event) { + if (this.state == null) { + this.state = DecisionState.empty(); + } this.state = this.state.withDecisionTaken(event); } diff --git a/src/main/java/io/autoinvestor/infrastructure/event_publishers/EventMessageMapper.java b/src/main/java/io/autoinvestor/infrastructure/event_publishers/EventMessageMapper.java index 5f2c762..90fc31c 100644 --- a/src/main/java/io/autoinvestor/infrastructure/event_publishers/EventMessageMapper.java +++ b/src/main/java/io/autoinvestor/infrastructure/event_publishers/EventMessageMapper.java @@ -23,19 +23,18 @@ final class EventMessageMapper { PubsubMessage toMessage(Event event) { try { Map envelope = new HashMap<>(); - envelope.put("payload", event.getPayload().asMap()); - envelope.put("eventId", event.getId().value()); - envelope.put("type", event.getType()); + envelope.put("payload", event.getPayload().asMap()); + envelope.put("eventId", event.getId().value()); + envelope.put("type", event.getType()); envelope.put("aggregateId", event.getAggregateId().value()); envelope.put("occurredAt", Instant.ofEpochMilli(event.getOccurredAt().getTime()).toString()); - envelope.put("version", event.getVersion()); + envelope.put("version", event.getVersion()); String json = objectMapper.writeValueAsString(envelope); return PubsubMessage.newBuilder() .setData(ByteString.copyFromUtf8(json)) .build(); - } catch (JsonProcessingException ex) { throw new InternalErrorException("Failed to serialise domain event"); }