Skip to content

Commit

Permalink
AGNT-598: support GENERICSYSTEMEVENTs in listeners
Browse files Browse the repository at this point in the history
  • Loading branch information
jspasquali committed Nov 20, 2024
1 parent ab6c666 commit ebc776f
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -208,4 +208,16 @@ default void onMessageSuppressed(V4Initiator initiator, V4MessageSuppressed even
default void onSymphonyElementsAction(V4Initiator initiator, V4SymphonyElementsAction event) throws EventException {
}

/**
* Called when a GENERICSYSTEMEVENT event is received.
*
* @param initiator Event initiator.
* @param event Generic system event payload.
* @throws EventException Throw this exception if this method should fail the current events processing
* and re-queue the events in datafeed. Other exceptions will be caught silently.
*/
default void onGenericSystemEvent(V4Initiator initiator, V4GenericSystemEvent event) throws EventException {
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,12 @@ enum RealTimeEventType {
}),
CONNECTIONREQUESTED((listener, event) -> {
listener.onConnectionRequested(event.getInitiator(), proxy(event.getPayload().getConnectionRequested(), event));
}),
GENERICSYSTEMEVENT((listener, event) -> {
listener.onGenericSystemEvent(event.getInitiator(), proxy(event.getPayload().getGenericSystemEvent(), event));
});


private final BiConsumer<RealTimeEventListener, V4Event> execConsumer;

RealTimeEventType(BiConsumer<RealTimeEventListener, V4Event> consumer) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import com.symphony.bdk.gen.api.model.V4ConnectionAccepted;
import com.symphony.bdk.gen.api.model.V4ConnectionRequested;
import com.symphony.bdk.gen.api.model.V4Event;
import com.symphony.bdk.gen.api.model.V4GenericSystemEvent;
import com.symphony.bdk.gen.api.model.V4Initiator;
import com.symphony.bdk.gen.api.model.V4InstantMessageCreated;
import com.symphony.bdk.gen.api.model.V4MessageSent;
Expand Down Expand Up @@ -469,7 +470,8 @@ void handleV4EventTest() {
.roomMemberPromotedToOwner(new V4RoomMemberPromotedToOwner())
.userLeftRoom(new V4UserLeftRoom())
.userJoinedRoom(new V4UserJoinedRoom())
.userRequestedToJoinRoom(new V4UserRequestedToJoinRoom());
.userRequestedToJoinRoom(new V4UserRequestedToJoinRoom())
.genericSystemEvent(new V4GenericSystemEvent());

final V4Initiator initiator = new V4Initiator().user(new V4User().username("username").userId(123456789L));
for (RealTimeEventType type : types) {
Expand Down Expand Up @@ -516,5 +518,6 @@ public void onMessageSent(V4Initiator initiator, V4MessageSent event) {
verify(spiedListener).onUserLeftRoom(eq(initiator), any(V4UserLeftRoom.class));
verify(spiedListener).onUserJoinedRoom(eq(initiator), any(V4UserJoinedRoom.class));
verify(spiedListener).onUserRequestedToJoinRoom(eq(initiator), any(V4UserRequestedToJoinRoom.class));
verify(spiedListener).onGenericSystemEvent(eq(initiator), any(V4GenericSystemEvent.class));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.symphony.bdk.core.service.datafeed.RealTimeEventListener;
import com.symphony.bdk.gen.api.model.V4ConnectionAccepted;
import com.symphony.bdk.gen.api.model.V4ConnectionRequested;
import com.symphony.bdk.gen.api.model.V4GenericSystemEvent;
import com.symphony.bdk.gen.api.model.V4Initiator;
import com.symphony.bdk.gen.api.model.V4InstantMessageCreated;
import com.symphony.bdk.gen.api.model.V4MessageSent;
Expand Down Expand Up @@ -150,4 +151,10 @@ public void onMessageSuppressed(V4Initiator initiator, V4MessageSuppressed event
public void onSymphonyElementsAction(V4Initiator initiator, V4SymphonyElementsAction event) {
this.publisher.publishEvent(new RealTimeEvent<>(initiator, event));
}

@Override
public void onGenericSystemEvent(V4Initiator initiator, V4GenericSystemEvent event) {
this.publisher.publishEvent(new RealTimeEvent<>(initiator, event));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,11 @@ public enum V4EventType {
assert event.getPayload() != null;
assert event.getPayload().getConnectionRequested() != null : "ConnectionRequested event must not null";
listener.onConnectionRequested(event.getInitiator(), proxy(event.getPayload().getConnectionRequested(), event));
}),
GENERICSYSTEMEVENT((listener, event) -> {
assert event.getPayload() != null;
assert event.getPayload().getGenericSystemEvent() != null : "GenericSystemEvent event must not null";
listener.onGenericSystemEvent(event.getInitiator(), proxy(event.getPayload().getGenericSystemEvent(), event));
});

private final BiConsumer<RealTimeEventListener, V4Event> execConsumer;
Expand Down

0 comments on commit ebc776f

Please sign in to comment.