Records for the JSON the clients read, leaving out only the fields TypeScript leaves undefined. GameLoop is the single thread that owns live state; ManualScheduler replaces Jest's fake timers in tests. Keycloak tokens are verified with jose4j and the same checks as before.
16 lines
555 B
Java
16 lines
555 B
Java
package app.playmancala.model;
|
|
|
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
|
|
public record UserConnectionInfo(
|
|
String userId,
|
|
@JsonInclude(JsonInclude.Include.NON_NULL) String name,
|
|
@JsonProperty("isGuest") boolean isGuest,
|
|
@JsonProperty("isOnline") boolean isOnline) {
|
|
|
|
public static UserConnectionInfo of(PlayerSummary player, boolean isOnline) {
|
|
return new UserConnectionInfo(player.userId(), player.name(), player.isGuest(), isOnline);
|
|
}
|
|
}
|