commit 7a672056dc8a7aa094b394e20275eaeed39d0974
parent 9438e7495f0545e6771e2b225002a0b9540998fe
Author: bohdan-potuzhnyi <bohdan.potuzhnyi@gmail.com>
Date: Wed, 20 Nov 2024 17:40:07 +0100
adding sql calls for the order_settled webhook
Diffstat:
2 files changed, 69 insertions(+), 0 deletions(-)
diff --git 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
@@ -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