X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/a1f0d74a99e4dc5c2e7a7ee79f59684314da4c4f..8717665d1d273a32afef136c15c0d5abaaae0f85:/src/main/java/org/asamk/signal/JsonMessageEnvelope.java diff --git a/src/main/java/org/asamk/signal/JsonMessageEnvelope.java b/src/main/java/org/asamk/signal/JsonMessageEnvelope.java new file mode 100644 index 00000000..2ce39cc5 --- /dev/null +++ b/src/main/java/org/asamk/signal/JsonMessageEnvelope.java @@ -0,0 +1,36 @@ +package org.asamk.signal; + +import org.whispersystems.signalservice.api.messages.SignalServiceContent; +import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope; +import org.whispersystems.signalservice.api.push.SignalServiceAddress; + +class JsonMessageEnvelope { + String source; + int sourceDevice; + String relay; + long timestamp; + boolean isReceipt; + JsonDataMessage dataMessage; + JsonSyncMessage syncMessage; + JsonCallMessage callMessage; + + public JsonMessageEnvelope(SignalServiceEnvelope envelope, SignalServiceContent content) { + SignalServiceAddress source = envelope.getSourceAddress(); + this.source = source.getNumber(); + this.sourceDevice = envelope.getSourceDevice(); + this.relay = source.getRelay().isPresent() ? source.getRelay().get() : null; + this.timestamp = envelope.getTimestamp(); + this.isReceipt = envelope.isReceipt(); + if (content != null) { + if (content.getDataMessage().isPresent()) { + this.dataMessage = new JsonDataMessage(content.getDataMessage().get()); + } + if (content.getSyncMessage().isPresent()) { + this.syncMessage = new JsonSyncMessage(content.getSyncMessage().get()); + } + if (content.getCallMessage().isPresent()) { + this.callMessage = new JsonCallMessage(content.getCallMessage().get()); + } + } + } +}