]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonGroupInfo.java
Fix camel case device-id flag
[signal-cli] / src / main / java / org / asamk / signal / json / JsonGroupInfo.java
1 package org.asamk.signal.json;
2
3 import com.fasterxml.jackson.annotation.JsonInclude;
4 import com.fasterxml.jackson.annotation.JsonProperty;
5
6 import org.asamk.signal.manager.groups.GroupUtils;
7 import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
8 import org.whispersystems.signalservice.api.messages.SignalServiceGroupV2;
9 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
10
11 import java.util.Base64;
12 import java.util.List;
13 import java.util.stream.Collectors;
14
15 class JsonGroupInfo {
16
17 @JsonProperty
18 final String groupId;
19
20 @JsonProperty
21 final String type;
22
23 @JsonProperty
24 @JsonInclude(JsonInclude.Include.NON_NULL)
25 final String name;
26
27 @JsonProperty
28 @JsonInclude(JsonInclude.Include.NON_NULL)
29 final List<String> members;
30
31 JsonGroupInfo(SignalServiceGroup groupInfo) {
32 this.groupId = Base64.getEncoder().encodeToString(groupInfo.getGroupId());
33 this.type = groupInfo.getType().toString();
34 this.name = groupInfo.getName().orNull();
35 if (groupInfo.getMembers().isPresent()) {
36 this.members = groupInfo.getMembers()
37 .get()
38 .stream()
39 .map(SignalServiceAddress::getLegacyIdentifier)
40 .collect(Collectors.toList());
41 } else {
42 this.members = null;
43 }
44 }
45
46 JsonGroupInfo(SignalServiceGroupV2 groupInfo) {
47 this.groupId = GroupUtils.getGroupIdV2(groupInfo.getMasterKey()).toBase64();
48 this.type = groupInfo.hasSignedGroupChange() ? "UPDATE" : "DELIVER";
49 this.members = null;
50 this.name = null;
51 }
52
53 JsonGroupInfo(byte[] groupId) {
54 this.groupId = Base64.getEncoder().encodeToString(groupId);
55 this.type = "DELIVER";
56 this.members = null;
57 this.name = null;
58 }
59 }