]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonTypingMessage.java
Use record classes
[signal-cli] / src / main / java / org / asamk / signal / json / JsonTypingMessage.java
1 package org.asamk.signal.json;
2
3 import com.fasterxml.jackson.annotation.JsonInclude;
4
5 import org.whispersystems.signalservice.api.messages.SignalServiceTypingMessage;
6
7 import java.util.Base64;
8
9 record JsonTypingMessage(
10 String action, long timestamp, @JsonInclude(JsonInclude.Include.NON_NULL) String groupId
11 ) {
12
13 JsonTypingMessage(final String action, final long timestamp, final String groupId) {
14 this.action = action;
15 this.timestamp = timestamp;
16 this.groupId = groupId;
17 }
18
19 static JsonTypingMessage from(SignalServiceTypingMessage typingMessage) {
20 final var action = typingMessage.getAction().name();
21 final var timestamp = typingMessage.getTimestamp();
22 final var encoder = Base64.getEncoder();
23 final var groupId = typingMessage.getGroupId().transform(encoder::encodeToString).orNull();
24 return new JsonTypingMessage(action, timestamp, groupId);
25 }
26 }