From: AsamK Date: Sun, 18 Sep 2022 14:56:30 +0000 (+0200) Subject: Add sendPaymentNotification dbus method X-Git-Tag: v0.11.0~2 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/6feff1e42b6ec023a48f02bf3b1cd56a6dc5d5d5?ds=sidebyside Add sendPaymentNotification dbus method Closes #1010 --- diff --git a/man/signal-cli-dbus.5.adoc b/man/signal-cli-dbus.5.adoc index 2a83e50c..bc3ad40d 100644 --- a/man/signal-cli-dbus.5.adoc +++ b/man/signal-cli-dbus.5.adoc @@ -202,6 +202,15 @@ Depending on the type of the recipient(s) field this sends a reaction to one or Exceptions: Failure, InvalidNumber +sendPaymentNotification(receipt, note, recipient) -> timestamp:: +* receipt : Byte array with the payment receipt blob +* note : String with a note for the payment +* recipient : String with the phone number of a single recipient + +* timestamp : Long, can be used to identify the corresponding Signal reply + +Exceptions: Failure + sendNoteToSelfMessage(message, attachments) -> timestamp:: * message : Text to send (can be UTF8) * attachments : String array of filenames to send as attachments (passed as filename, so need to be readable by the user signal-cli is running under) diff --git a/src/main/java/org/asamk/Signal.java b/src/main/java/org/asamk/Signal.java index caf55555..c65d75c0 100644 --- a/src/main/java/org/asamk/Signal.java +++ b/src/main/java/org/asamk/Signal.java @@ -62,6 +62,8 @@ public interface Signal extends DBusInterface { String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, List recipients ) throws Error.InvalidNumber, Error.Failure; + long sendPaymentNotification(byte[] receipt, String note, String recipient) throws Error.Failure; + void sendContacts() throws Error.Failure; void sendSyncRequest() throws Error.Failure; diff --git a/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java b/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java index e13aee4d..b78f8022 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java @@ -388,7 +388,8 @@ public class DbusManagerImpl implements Manager { public SendMessageResults sendPaymentNotificationMessage( final byte[] receipt, final String note, final RecipientIdentifier.Single recipient ) throws IOException { - throw new UnsupportedOperationException(); + final var timestamp = signal.sendPaymentNotification(receipt, note, recipient.getIdentifier()); + return new SendMessageResults(timestamp, Map.of()); } @Override diff --git a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java index d2ac27a9..a65c183b 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java @@ -298,6 +298,21 @@ public class DbusSignalImpl implements Signal { } } + @Override + public long sendPaymentNotification( + final byte[] receipt, final String note, final String recipient + ) throws Error.Failure { + try { + final var results = m.sendPaymentNotificationMessage(receipt, + note, + getSingleRecipientIdentifier(recipient, m.getSelfNumber())); + checkSendMessageResults(results); + return results.timestamp(); + } catch (IOException e) { + throw new Error.Failure(e.getMessage()); + } + } + @Override public void sendTyping( final String recipient, final boolean stop