Skip to content

Commit

Permalink
add group info on json message
Browse files Browse the repository at this point in the history
  • Loading branch information
Jailson Dias authored and AsamK committed Oct 25, 2024
1 parent 5646f65 commit eac2a47
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 11 deletions.
5 changes: 3 additions & 2 deletions src/main/java/org/asamk/signal/json/JsonDataMessage.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.fasterxml.jackson.annotation.JsonInclude;

import org.asamk.signal.manager.Manager;
import org.asamk.signal.manager.api.MessageEnvelope;

import java.util.List;
Expand All @@ -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;
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/org/asamk/signal/json/JsonEditMessage.java
Original file line number Diff line number Diff line change
@@ -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));
}
}
7 changes: 5 additions & 2 deletions src/main/java/org/asamk/signal/json/JsonGroupInfo.java
Original file line number Diff line number Diff line change
@@ -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");
}
}
11 changes: 8 additions & 3 deletions src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
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;

Expand All @@ -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));
}
}
5 changes: 3 additions & 2 deletions src/main/java/org/asamk/signal/json/JsonSyncMessage.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

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;
Expand All @@ -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())
Expand Down

0 comments on commit eac2a47

Please sign in to comment.