]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonReaction.java
Use record classes
[signal-cli] / src / main / java / org / asamk / signal / json / JsonReaction.java
1 package org.asamk.signal.json;
2
3 import org.asamk.signal.manager.Manager;
4 import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage.Reaction;
5
6 import static org.asamk.signal.util.Util.getLegacyIdentifier;
7
8 public record JsonReaction(
9 String emoji,
10 @Deprecated String targetAuthor,
11 String targetAuthorNumber,
12 String targetAuthorUuid,
13 long targetSentTimestamp,
14 boolean isRemove
15 ) {
16
17 static JsonReaction from(Reaction reaction, Manager m) {
18 final var emoji = reaction.getEmoji();
19 final var address = m.resolveSignalServiceAddress(reaction.getTargetAuthor());
20 final var targetAuthor = getLegacyIdentifier(address);
21 final var targetAuthorNumber = address.getNumber().orNull();
22 final var targetAuthorUuid = address.getUuid().toString();
23 final var targetSentTimestamp = reaction.getTargetSentTimestamp();
24 final var isRemove = reaction.isRemove();
25 return new JsonReaction(emoji,
26 targetAuthor,
27 targetAuthorNumber,
28 targetAuthorUuid,
29 targetSentTimestamp,
30 isRemove);
31 }
32 }