add group info on json message

This commit is contained in:
Jailson Dias 2024-10-24 17:27:51 -03:00 committed by Sebastian Scheibner
parent 5646f65195
commit eac2a47163
5 changed files with 22 additions and 11 deletions

View file

@ -2,6 +2,7 @@ package org.asamk.signal.json;
import com.fasterxml.jackson.annotation.JsonInclude;
import org.asamk.signal.manager.Manager;
import org.asamk.signal.manager.api.MessageEnvelope;
import java.util.List;
@ -25,10 +26,10 @@ record JsonDataMessage(
@JsonInclude(JsonInclude.Include.NON_NULL) JsonStoryContext storyContext
) {
static JsonDataMessage from(MessageEnvelope.Data dataMessage) {
static JsonDataMessage from(MessageEnvelope.Data dataMessage, Manager m) {
final var timestamp = dataMessage.timestamp();
final var groupInfo = dataMessage.groupContext().isPresent() ? JsonGroupInfo.from(dataMessage.groupContext()
.get()) : null;
.get(), m) : null;
final var storyContext = dataMessage.storyContext().isPresent()
? JsonStoryContext.from(dataMessage.storyContext().get())
: null;

View file

@ -1,10 +1,11 @@
package org.asamk.signal.json;
import org.asamk.signal.manager.Manager;
import org.asamk.signal.manager.api.MessageEnvelope;
record JsonEditMessage(long targetSentTimestamp, JsonDataMessage dataMessage) {
static JsonEditMessage from(MessageEnvelope.Edit editMessage) {
return new JsonEditMessage(editMessage.targetSentTimestamp(), JsonDataMessage.from(editMessage.dataMessage()));
static JsonEditMessage from(MessageEnvelope.Edit editMessage, Manager m) {
return new JsonEditMessage(editMessage.targetSentTimestamp(), JsonDataMessage.from(editMessage.dataMessage(), m));
}
}

View file

@ -1,11 +1,14 @@
package org.asamk.signal.json;
import org.asamk.signal.manager.Manager;
import org.asamk.signal.manager.api.MessageEnvelope;
record JsonGroupInfo(String groupId, String type) {
record JsonGroupInfo(String groupId, String groupName, int revision, String type) {
static JsonGroupInfo from(MessageEnvelope.Data.GroupContext groupContext) {
static JsonGroupInfo from(MessageEnvelope.Data.GroupContext groupContext, Manager m) {
return new JsonGroupInfo(groupContext.groupId().toBase64(),
m.getGroup(groupContext.groupId()).title(),
groupContext.revision(),
groupContext.isGroupUpdate() ? "UPDATE" : "DELIVER");
}
}

View file

@ -3,6 +3,7 @@ package org.asamk.signal.json;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonUnwrapped;
import org.asamk.signal.manager.Manager;
import org.asamk.signal.manager.api.MessageEnvelope;
import org.asamk.signal.manager.api.RecipientAddress;
@ -16,13 +17,17 @@ record JsonSyncDataMessage(
@JsonUnwrapped JsonDataMessage dataMessage
) {
static JsonSyncDataMessage from(MessageEnvelope.Sync.Sent transcriptMessage) {
static JsonSyncDataMessage from(MessageEnvelope.Sync.Sent transcriptMessage, Manager m) {
return new JsonSyncDataMessage(transcriptMessage.destination()
.map(RecipientAddress::getLegacyIdentifier)
.orElse(null),
transcriptMessage.destination().flatMap(RecipientAddress::number).orElse(null),
transcriptMessage.destination().flatMap(address -> address.uuid().map(UUID::toString)).orElse(null),
transcriptMessage.editMessage().map(JsonEditMessage::from).orElse(null),
transcriptMessage.message().map(JsonDataMessage::from).orElse(null));
transcriptMessage.editMessage()
.map(data -> JsonEditMessage.from(data, m))
.orElse(null),
transcriptMessage.message()
.map(data -> JsonDataMessage.from(data, m))
.orElse(null));
}
}

View file

@ -2,6 +2,7 @@ package org.asamk.signal.json;
import com.fasterxml.jackson.annotation.JsonInclude;
import org.asamk.signal.manager.Manager;
import org.asamk.signal.manager.api.GroupId;
import org.asamk.signal.manager.api.MessageEnvelope;
import org.asamk.signal.manager.api.RecipientAddress;
@ -23,9 +24,9 @@ record JsonSyncMessage(
@JsonInclude(JsonInclude.Include.NON_NULL) JsonSyncMessageType type
) {
static JsonSyncMessage from(MessageEnvelope.Sync syncMessage) {
static JsonSyncMessage from(MessageEnvelope.Sync syncMessage, Manager m) {
final var sentMessage = syncMessage.sent().isPresent() && syncMessage.sent().get().story().isEmpty()
? JsonSyncDataMessage.from(syncMessage.sent().get())
? JsonSyncDataMessage.from(syncMessage.sent().get(), m)
: null;
final var sentStoryMessage = syncMessage.sent().isPresent() && syncMessage.sent().get().story().isPresent()
? JsonSyncStoryMessage.from(syncMessage.sent().get())