merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

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:
Msrc/backenddb/pg_insert_deposit_to_transfer.sql | 35+++++++++++++++++++++++++++++++++++
Msrc/backenddb/pg_insert_transfer_details.sql | 34++++++++++++++++++++++++++++++++++
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