package org.asamk.signal.json;
-import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
-import org.whispersystems.signalservice.api.push.SignalServiceAddress;
-import org.whispersystems.util.Base64;
+import org.asamk.signal.manager.api.MessageEnvelope;
-import java.util.ArrayList;
-import java.util.List;
+record JsonGroupInfo(String groupId, String type) {
-class JsonGroupInfo {
-
- String groupId;
- List<String> members;
- String name;
- String type;
-
- JsonGroupInfo(SignalServiceGroup groupInfo) {
- this.groupId = Base64.encodeBytes(groupInfo.getGroupId());
- if (groupInfo.getMembers().isPresent()) {
- this.members = new ArrayList<>(groupInfo.getMembers().get().size());
- for (SignalServiceAddress address : groupInfo.getMembers().get()) {
- this.members.add(address.getLegacyIdentifier());
- }
- }
- if (groupInfo.getName().isPresent()) {
- this.name = groupInfo.getName().get();
- }
- this.type = groupInfo.getType().toString();
- }
-
- JsonGroupInfo(byte[] groupId) {
- this.groupId = Base64.encodeBytes(groupId);
+ static JsonGroupInfo from(MessageEnvelope.Data.GroupContext groupContext) {
+ return new JsonGroupInfo(groupContext.groupId().toBase64(),
+ groupContext.isGroupUpdate() ? "UPDATE" : "DELIVER");
}
}