From a7f00236b3bf9ca82b2770fd62c0fdd4d031ba66 Mon Sep 17 00:00:00 2001 From: Zhen Lu Date: Thu, 21 Dec 2023 12:01:22 -0800 Subject: [PATCH] Add OutgoingPaymentsForInvoice query. --- scripts/outgoing_payments_for_invoice.go | 18 ++++++++++++++++++ services/lightspark_client.go | 22 ++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 scripts/outgoing_payments_for_invoice.go diff --git a/scripts/outgoing_payments_for_invoice.go b/scripts/outgoing_payments_for_invoice.go new file mode 100644 index 0000000..c27d181 --- /dev/null +++ b/scripts/outgoing_payments_for_invoice.go @@ -0,0 +1,18 @@ +package scripts + +import "github.com/lightsparkdev/go-sdk/objects" + +const OUTGOING_PAYMENTS_FOR_INVOICE_QUERY = ` +query OutgoingPaymentsForInvoice( + $encoded_invoice: String! + $statuses: [PaymentStatus!] +} { + outgoing_payments_for_invoice_query(input: { + encoded_invoice: $encoded_invoice + statuses: $statuses + }) { + ...OutgoingPaymentsForInvoiceQueryOutputFragment + } +} + +` + objects.OutgoingPaymentsForInvoiceQueryOutputFragment \ No newline at end of file diff --git a/services/lightspark_client.go b/services/lightspark_client.go index 25616b1..9fab73c 100644 --- a/services/lightspark_client.go +++ b/services/lightspark_client.go @@ -991,6 +991,28 @@ func (client *LightsparkClient) GetWithdrawalFeeEstimate(nodeId string, amountSa return &feeEstimate, nil } +func (client *LightsparkClient) FetchOutgoingPaymentsByInvoice(encodedInvoice string, + statuses *[]objects.TransactionStatus) (*objects.OutgoingPaymentsForInvoiceQueryOutput, error) { + variables := map[string]interface{}{ + "encoded_invoice": encodedInvoice, + "statuses": statuses, + } + + response, err := client.Requester.ExecuteGraphql(scripts.OUTGOING_PAYMENTS_FOR_INVOICE_QUERY, variables, nil) + if err != nil { + return nil, err + } + + output := response["outgoing_payments_for_invoice"].(map[string]interface{}) + var payments objects.OutgoingPaymentsForInvoiceQueryOutput + paymentsJson, err := json.Marshal(output) + if err != nil { + return nil, errors.New("error parsing payments") + } + json.Unmarshal(paymentsJson, &payments) + return &payments, nil +} + func hashPhoneNumber(e614PhoneNumber string) (*string, error) { e164PhoneRegex, err := regexp.Compile(`^\+?[1-9]\d{1,14}$`) if err != nil {