gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-merchant] 01/14: adding sql calls for the order_settled webhook


From: gnunet
Subject: [taler-merchant] 01/14: adding sql calls for the order_settled webhook
Date: Sun, 08 Dec 2024 14:18:10 +0100

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository merchant.

commit 7a672056dc8a7aa094b394e20275eaeed39d0974
Author: bohdan-potuzhnyi <bohdan.potuzhnyi@gmail.com>
AuthorDate: Wed Nov 20 17:40:07 2024 +0100

    adding sql calls for the order_settled webhook
---
 src/backenddb/pg_insert_deposit_to_transfer.sql | 35 +++++++++++++++++++++++++
 src/backenddb/pg_insert_transfer_details.sql    | 34 ++++++++++++++++++++++++
 2 files changed, 69 insertions(+)

diff --git a/src/backenddb/pg_insert_deposit_to_transfer.sql 
b/src/backenddb/pg_insert_deposit_to_transfer.sql
index ae43b613..7e98f92f 100644
--- a/src/backenddb/pg_insert_deposit_to_transfer.sql
+++ b/src/backenddb/pg_insert_deposit_to_transfer.sql
@@ -35,6 +35,10 @@ DECLARE
   my_decose INT8;
 DECLARE
   my_order_serial INT8;
+DECLARE
+  my_merchant_serial INT8;
+DECLARE
+  my_order_id TEXT;
 BEGIN
 
 -- Find exchange sign key
@@ -157,4 +161,35 @@ UPDATE merchant_contract_terms
       WHERE mdc.wire_pending
         AND mdc.order_serial=my_order_serial);
 
+-- POSSIBLE LOCATION FOR THE WIRE WEBHOOK OF ORDER
+--
+-- SELECT merchant_serial, order_id
+--   INTO my_merchant_serial, my_order_id
+--   FROM merchant_contract_terms
+--  WHERE order_serial=my_order_serial;
+--
+-- PERFORM
+-- FROM merchant_webhook mw
+-- WHERE mw.event_type = 'order_settled'
+--   AND mw.merchant_serial = my_merchant_serial;
+--
+-- IF FOUND
+-- THEN
+--   -- Insert a pending webhook for the merchant
+--   INSERT INTO merchant_pending_webhooks
+--   (merchant_serial
+--   ,webhook_serial
+--   ,url
+--   ,http_method
+--   ,body)
+--   SELECT mw.merchant_serial
+--        ,mw.webhook_serial
+--        ,mw.url
+--        ,mw.http_method
+--        ,json_build_object('order_id', my_order_id)::TEXT
+--   FROM merchant_webhook mw
+--   WHERE mw.event_type = 'order_settled'
+--     AND mw.merchant_serial = my_merchant_serial;
+-- END IF;
+
 END $$;
diff --git a/src/backenddb/pg_insert_transfer_details.sql 
b/src/backenddb/pg_insert_transfer_details.sql
index 0dd11b1b..f51f76cb 100644
--- a/src/backenddb/pg_insert_transfer_details.sql
+++ b/src/backenddb/pg_insert_transfer_details.sql
@@ -41,6 +41,8 @@ DECLARE
   my_signkey_serial INT8;
   my_credit_serial INT8;
   my_affected_orders RECORD;
+  my_merchant_serial INT8;
+  my_order_id TEXT;
   i INT8;
   curs CURSOR (arg_coin_pub BYTEA) FOR
     SELECT mcon.deposit_confirmation_serial,
@@ -220,6 +222,38 @@ LOOP
             FROM merchant_deposit_confirmations mdc
              WHERE mdc.wire_pending
                AND mdc.order_serial=my_affected_orders.order_serial);
+
+      -- Select merchant_serial and order_id for webhook
+      SELECT merchant_serial, order_id
+        INTO my_merchant_serial, my_order_id
+        FROM merchant_contract_terms
+       WHERE order_serial=my_affected_orders.order_serial;
+
+      -- Check if a webhook exists for order settlement
+      PERFORM
+      FROM merchant_webhook mw
+      WHERE mw.event_type = 'order_settled'
+        AND mw.merchant_serial = my_merchant_serial;
+
+      IF FOUND
+      THEN
+        -- Insert pending webhook
+        INSERT INTO merchant_pending_webhooks
+        (merchant_serial
+        ,webhook_serial
+        ,url
+        ,http_method
+        ,body)
+        SELECT mw.merchant_serial
+             ,mw.webhook_serial
+             ,mw.url
+             ,mw.http_method
+             ,json_build_object('order_id', my_order_id)::TEXT
+          FROM merchant_webhook mw
+         WHERE mw.event_type = 'order_settled'
+           AND mw.merchant_serial = my_merchant_serial;
+      END IF;
+
     END IF;
 
   END LOOP; -- END curs LOOP

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]