From cb9c060e5e12ea767603d7883be7b2919221ee4b Mon Sep 17 00:00:00 2001 From: Bohdan Potuzhnyi Date: Mon, 4 Nov 2024 20:29:39 +0000 Subject: first ideas on webhooks --- .../taler-merchant-httpd_private-post-orders.c | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/backend/taler-merchant-httpd_private-post-orders.c b/src/backend/taler-merchant-httpd_private-post-orders.c index ee2b3d85..3d8b89df 100644 --- a/src/backend/taler-merchant-httpd_private-post-orders.c +++ b/src/backend/taler-merchant-httpd_private-post-orders.c @@ -884,6 +884,7 @@ execute_transaction (struct OrderContext *oc) TMH_db->rollback (TMH_db->cls); return qs; } + TMH_notify_order_change (oc->hc->instance, TMH_OSF_NONE, timestamp, @@ -1077,6 +1078,42 @@ execute_order (struct OrderContext *oc) /* Everything in-stock, generate positive response */ GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Order creation succeeded\n"); + + { + enum GNUNET_DB_QueryStatus qs; + json_t *jhook; + + jhook = GNUNET_JSON_PACK( + GNUNET_JSON_pack_string("order_id", + oc->parse_order.order_id), + GNUNET_JSON_pack_object_incref("contract", + oc->serialize_order.contract), + GNUNET_JSON_pack_string("instance_id", + oc->hc->instance->settings.id) + ); + GNUNET_assert(NULL != jhook); + +// webhook_qs = TMH_trigger_webhook(oc->hc->instance->settings.id, +// "order_created", +// jhook); + +// json_decref(jhook); +// +// if (0 >= webhook_qs) +// { +// TMH_db->rollback (TMH_db->cls); +// if (GNUNET_DB_STATUS_SOFT_ERROR == webhook_qs) +// return webhook_qs; /* do it again */ +// /* Always report on hard error as well to enable diagnostics */ +// GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR == webhook_qs); +// reply_with_error (oc, +// MHD_HTTP_INTERNAL_SERVER_ERROR, +// TALER_EC_GENERIC_DB_STORE_FAILED, +// "failed to trigger webhooks"); +// return webhook_qs; +// } + } + { MHD_RESULT ret; -- cgit v1.2.3