diff --git a/suite-brokers/src/main/java/com/odeyalo/sonata/suite/brokers/events/AbstractEvent.java b/suite-brokers/src/main/java/com/odeyalo/sonata/suite/brokers/events/AbstractEvent.java index abfc7c3..0aa5273 100644 --- a/suite-brokers/src/main/java/com/odeyalo/sonata/suite/brokers/events/AbstractEvent.java +++ b/suite-brokers/src/main/java/com/odeyalo/sonata/suite/brokers/events/AbstractEvent.java @@ -1,8 +1,12 @@ package com.odeyalo.sonata.suite.brokers.events; +import com.fasterxml.jackson.annotation.JsonCreator; +import lombok.Getter; + import java.util.UUID; -public abstract class AbstractEvent implements SonataEvent { +@Getter +public abstract class AbstractEvent implements SonataEvent, EventTypeProvider { protected String id; protected long creationTime; protected T body; @@ -13,6 +17,7 @@ public AbstractEvent(T body) { this.body = body; } + @JsonCreator public AbstractEvent(String id, long creationTime, T body) { this.id = id; this.creationTime = creationTime; @@ -28,8 +33,4 @@ public String id() { public long creationTime() { return creationTime; } - - public T getBody() { - return body; - } } diff --git a/suite-brokers/src/main/java/com/odeyalo/sonata/suite/brokers/events/EventTypeProvider.java b/suite-brokers/src/main/java/com/odeyalo/sonata/suite/brokers/events/EventTypeProvider.java index 7413966..61c507e 100644 --- a/suite-brokers/src/main/java/com/odeyalo/sonata/suite/brokers/events/EventTypeProvider.java +++ b/suite-brokers/src/main/java/com/odeyalo/sonata/suite/brokers/events/EventTypeProvider.java @@ -1,5 +1,6 @@ package com.odeyalo.sonata.suite.brokers.events; +import com.fasterxml.jackson.annotation.JsonProperty; import org.jetbrains.annotations.NotNull; public interface EventTypeProvider { @@ -7,6 +8,7 @@ public interface EventTypeProvider { * @return unique type of this event that used as identifier */ @NotNull + @JsonProperty("event_type") String getEventType(); } diff --git a/suite-brokers/src/main/java/com/odeyalo/sonata/suite/brokers/events/activity/player/TrackResumedEvent.java b/suite-brokers/src/main/java/com/odeyalo/sonata/suite/brokers/events/activity/player/TrackResumedEvent.java index 12cff7a..15667cf 100644 --- a/suite-brokers/src/main/java/com/odeyalo/sonata/suite/brokers/events/activity/player/TrackResumedEvent.java +++ b/suite-brokers/src/main/java/com/odeyalo/sonata/suite/brokers/events/activity/player/TrackResumedEvent.java @@ -2,24 +2,24 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.odeyalo.sonata.suite.brokers.events.AbstractEvent; -import com.odeyalo.sonata.suite.brokers.events.activity.player.payload.TrackSeekPayload; +import com.odeyalo.sonata.suite.brokers.events.activity.player.payload.TrackPlayedPayload; import lombok.EqualsAndHashCode; import lombok.Value; import org.jetbrains.annotations.NotNull; @EqualsAndHashCode(callSuper = true) @Value -public class TrackResumedEvent extends AbstractEvent { +public class TrackResumedEvent extends AbstractEvent { public static final String EVENT_TYPE = "track_resumed"; - public TrackResumedEvent(final TrackPlayedEvent body) { + public TrackResumedEvent(final TrackPlayedPayload body) { super(body); } @JsonCreator public TrackResumedEvent(final String id, final long creationTime, - final TrackPlayedEvent body) { + final TrackPlayedPayload body) { super(id, creationTime, body); } diff --git a/suite-brokers/src/main/java/com/odeyalo/sonata/suite/brokers/events/activity/player/payload/TrackPlayedPayload.java b/suite-brokers/src/main/java/com/odeyalo/sonata/suite/brokers/events/activity/player/payload/TrackPlayedPayload.java index 482085c..062c0fc 100644 --- a/suite-brokers/src/main/java/com/odeyalo/sonata/suite/brokers/events/activity/player/payload/TrackPlayedPayload.java +++ b/suite-brokers/src/main/java/com/odeyalo/sonata/suite/brokers/events/activity/player/payload/TrackPlayedPayload.java @@ -20,7 +20,7 @@ public class TrackPlayedPayload { public TrackPlayedPayload(@NotNull final String userId, @NotNull final String trackId, final int position) { - Assert.isTrue(position > 0, "Position should be positive"); + Assert.isTrue(position >= 0, "Position should be positive"); this.userId = userId; this.trackId = trackId; this.position = position;