]> nmode's Git Repositories - signal-cli/commitdiff
add JsonPayment (#808)
authortechnillogue <technillogue@gmail.com>
Tue, 23 Nov 2021 07:14:01 +0000 (02:14 -0500)
committerGitHub <noreply@github.com>
Tue, 23 Nov 2021 07:14:01 +0000 (08:14 +0100)
graalvm-config-dir/reflect-config.json
lib/src/main/java/org/asamk/signal/manager/api/MessageEnvelope.java
src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java
src/main/java/org/asamk/signal/json/JsonDataMessage.java
src/main/java/org/asamk/signal/json/JsonPayment.java [new file with mode: 0644]

index 657a66d150537cc890a6094a560d053bf5787fa2..f2b69267df5463c89977c0ccd47de84521c532ed 100644 (file)
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true}
 ,
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true}
 ,
+{
+  "name":"org.asamk.signal.json.JsonPayment",
+  "allDeclaredFields":true,
+  "queryAllDeclaredMethods":true,
+  "queryAllDeclaredConstructors":true,
+  "methods":[
+    {"name":"note","parameterTypes":[] }, 
+    {"name":"receipt","parameterTypes":[] }
+  ]}
+,
 {
   "name":"org.asamk.signal.json.JsonQuote",
   "allDeclaredFields":true,
 {
   "name":"org.asamk.signal.json.JsonQuote",
   "allDeclaredFields":true,
     {"name":"eraId_"}
   ]}
 ,
     {"name":"eraId_"}
   ]}
 ,
+{
+  "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Payment",
+  "fields":[
+    {"name":"itemCase_"}, 
+    {"name":"item_"}
+  ]}
+,
+{
+  "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Payment$Notification",
+  "fields":[
+    {"name":"bitField0_"}, 
+    {"name":"note_"}, 
+    {"name":"transactionCase_"}, 
+    {"name":"transaction_"}
+  ]}
+,
+{
+  "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Payment$Notification$MobileCoin",
+  "fields":[
+    {"name":"bitField0_"}, 
+    {"name":"receipt_"}
+  ]}
+,
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Preview",
   "fields":[
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Preview",
   "fields":[
index 776e9f32ee5a324f2d5e7bddd8b8c23113df77e0..f9484a011ba21c2039fd692250f5118e4100c4aa 100644 (file)
@@ -101,6 +101,7 @@ public record MessageEnvelope(
             boolean hasProfileKey,
             Optional<Reaction> reaction,
             Optional<Quote> quote,
             boolean hasProfileKey,
             Optional<Reaction> reaction,
             Optional<Quote> quote,
+            Optional<Payment> payment,
             List<Attachment> attachments,
             Optional<Long> remoteDeleteId,
             Optional<Sticker> sticker,
             List<Attachment> attachments,
             Optional<Long> remoteDeleteId,
             Optional<Sticker> sticker,
@@ -130,6 +131,9 @@ public record MessageEnvelope(
                     Optional.ofNullable(dataMessage.getQuote()
                             .transform(q -> Quote.from(q, recipientResolver, addressResolver, fileProvider))
                             .orNull()),
                     Optional.ofNullable(dataMessage.getQuote()
                             .transform(q -> Quote.from(q, recipientResolver, addressResolver, fileProvider))
                             .orNull()),
+                    Optional.ofNullable(dataMessage.getPayment()
+                            .transform(p -> p.getPaymentNotification().isPresent() ? Payment.from(p) : null)
+                            .orNull()),
                     dataMessage.getAttachments()
                             .transform(a -> a.stream()
                                     .map(as -> Attachment.from(as, fileProvider))
                     dataMessage.getAttachments()
                             .transform(a -> a.stream()
                                     .map(as -> Attachment.from(as, fileProvider))
@@ -229,6 +233,12 @@ public record MessageEnvelope(
             }
         }
 
             }
         }
 
+        public record Payment(String note, byte[] receipt) {
+            static Payment from(SignalServiceDataMessage.Payment payment) {
+                return new Payment(payment.getPaymentNotification().get().getNote(), payment.getPaymentNotification().get().getReceipt());
+            }
+        }
+
         public record Mention(RecipientAddress recipient, int start, int length) {
 
             static Mention from(
         public record Mention(RecipientAddress recipient, int start, int length) {
 
             static Mention from(
index bde5113a09fa12b8b34a7079e5f41997978ce607..d2b1bec754189cb2d1ed919caa060f1810320157 100644 (file)
@@ -680,6 +680,7 @@ public class DbusManagerImpl implements Manager {
                                 false,
                                 Optional.empty(),
                                 Optional.empty(),
                                 false,
                                 Optional.empty(),
                                 Optional.empty(),
+                                Optional.empty(),
                                 getAttachments(extras),
                                 Optional.empty(),
                                 Optional.empty(),
                                 getAttachments(extras),
                                 Optional.empty(),
                                 Optional.empty(),
@@ -749,6 +750,7 @@ public class DbusManagerImpl implements Manager {
                                         false,
                                         Optional.empty(),
                                         Optional.empty(),
                                         false,
                                         Optional.empty(),
                                         Optional.empty(),
+                                        Optional.empty(),
                                         getAttachments(extras),
                                         Optional.empty(),
                                         Optional.empty(),
                                         getAttachments(extras),
                                         Optional.empty(),
                                         Optional.empty(),
index a3c2d7f25c9a66d7b9046e121d8a138b5e69cd26..c645b512115cc10405aca7e252d54ab27661be03 100644 (file)
@@ -15,6 +15,7 @@ record JsonDataMessage(
         @JsonInclude(JsonInclude.Include.NON_NULL) Boolean viewOnce,
         @JsonInclude(JsonInclude.Include.NON_NULL) JsonReaction reaction,
         @JsonInclude(JsonInclude.Include.NON_NULL) JsonQuote quote,
         @JsonInclude(JsonInclude.Include.NON_NULL) Boolean viewOnce,
         @JsonInclude(JsonInclude.Include.NON_NULL) JsonReaction reaction,
         @JsonInclude(JsonInclude.Include.NON_NULL) JsonQuote quote,
+        @JsonInclude(JsonInclude.Include.NON_NULL) JsonPayment payment,
         @JsonInclude(JsonInclude.Include.NON_NULL) List<JsonMention> mentions,
         @JsonInclude(JsonInclude.Include.NON_NULL) List<JsonAttachment> attachments,
         @JsonInclude(JsonInclude.Include.NON_NULL) JsonSticker sticker,
         @JsonInclude(JsonInclude.Include.NON_NULL) List<JsonMention> mentions,
         @JsonInclude(JsonInclude.Include.NON_NULL) List<JsonAttachment> attachments,
         @JsonInclude(JsonInclude.Include.NON_NULL) JsonSticker sticker,
@@ -32,6 +33,7 @@ record JsonDataMessage(
         final var viewOnce = dataMessage.isViewOnce();
         final var reaction = dataMessage.reaction().map(JsonReaction::from).orElse(null);
         final var quote = dataMessage.quote().isPresent() ? JsonQuote.from(dataMessage.quote().get()) : null;
         final var viewOnce = dataMessage.isViewOnce();
         final var reaction = dataMessage.reaction().map(JsonReaction::from).orElse(null);
         final var quote = dataMessage.quote().isPresent() ? JsonQuote.from(dataMessage.quote().get()) : null;
+        final var payment = dataMessage.payment().isPresent() ? JsonPayment.from(dataMessage.payment().get()) : null;
         final var mentions = dataMessage.mentions().size() > 0 ? dataMessage.mentions()
                 .stream()
                 .map(JsonMention::from)
         final var mentions = dataMessage.mentions().size() > 0 ? dataMessage.mentions()
                 .stream()
                 .map(JsonMention::from)
@@ -55,6 +57,7 @@ record JsonDataMessage(
                 viewOnce,
                 reaction,
                 quote,
                 viewOnce,
                 reaction,
                 quote,
+                payment,
                 mentions,
                 attachments,
                 sticker,
                 mentions,
                 attachments,
                 sticker,
@@ -72,6 +75,7 @@ record JsonDataMessage(
                 null,
                 null,
                 null,
                 null,
                 null,
                 null,
+                null,
                 messageReceived.getAttachments().stream().map(JsonAttachment::from).collect(Collectors.toList()),
                 null,
                 null,
                 messageReceived.getAttachments().stream().map(JsonAttachment::from).collect(Collectors.toList()),
                 null,
                 null,
@@ -88,6 +92,7 @@ record JsonDataMessage(
                 null,
                 null,
                 null,
                 null,
                 null,
                 null,
+                null,
                 messageReceived.getAttachments().stream().map(JsonAttachment::from).collect(Collectors.toList()),
                 null,
                 null,
                 messageReceived.getAttachments().stream().map(JsonAttachment::from).collect(Collectors.toList()),
                 null,
                 null,
diff --git a/src/main/java/org/asamk/signal/json/JsonPayment.java b/src/main/java/org/asamk/signal/json/JsonPayment.java
new file mode 100644 (file)
index 0000000..ee4a120
--- /dev/null
@@ -0,0 +1,9 @@
+package org.asamk.signal.json;
+
+import org.asamk.signal.manager.api.MessageEnvelope;
+
+public record JsonPayment(String note, byte[] receipt) {
+    static JsonPayment from(MessageEnvelope.Data.Payment payment) {
+        return new JsonPayment(payment.note(), payment.receipt());
+    }
+}