merchant

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

commit 129a6573fef7b34b2bfd433fd8f13be714826ab2
parent 1e9a9faea9025f6b4fa81393146c40cf7f3740ed
Author: bohdan-potuzhnyi <bohdan.potuzhnyi@gmail.com>
Date:   Wed, 16 Jul 2025 18:04:22 +0200

Merge branch 'dev/bohdan-potuzhnyi/donau-integration' of ssh://git.taler.net/merchant into dev/bohdan-potuzhnyi/donau-integration

Diffstat:
Msrc/backend/taler-merchant-httpd_private-post-orders.c | 45+++++++--------------------------------------
1 file changed, 7 insertions(+), 38 deletions(-)

diff --git a/src/backend/taler-merchant-httpd_private-post-orders.c b/src/backend/taler-merchant-httpd_private-post-orders.c @@ -3354,9 +3354,11 @@ add_donau_url (void *cls, int64_t current_year, const json_t *donau_keys_json) { - json_t *json_instances = cls; - GNUNET_assert (0 == json_array_append_new (json_instances, json_string ( - donau_url))); + struct TALER_MERCHANT_ContractOutput *output = cls; + + GNUNET_array_append (output->details.donation_receipt.donau_urls, + output->details.donation_receipt.donau_urls_len, + GNUNET_strdup (donau_url)); } @@ -3364,19 +3366,17 @@ static void parse_donau_instances (struct OrderContext *oc, struct TALER_MERCHANT_ContractOutput *output) { - json_t *json_donau_instances = json_array (); enum GNUNET_DB_QueryStatus qs; /* Invoke the database call, accumulating URLs in a JSON array */ /* FIXME: select_donau_instanceS */ qs = TMH_db->select_donau_instance (TMH_db->cls, &add_donau_url, - json_donau_instances); + oc); - /* REVIEW: If no */ + /* REVIEW: If no switch */ if (qs < 0) { - json_decref (json_donau_instances); GNUNET_break_op (0); reply_with_error (oc, MHD_HTTP_INTERNAL_SERVER_ERROR, @@ -3384,37 +3384,6 @@ parse_donau_instances (struct OrderContext *oc, "donau url parsing db call"); return; } - - /* Convert the JSON array of strings into a C array of URLs */ - { - size_t num_instances = json_array_size (json_donau_instances); - if (num_instances > 0) - { - /* FIXME: use the GNUNET_NEW_ARRAY */ - output->details.donation_receipt.donau_urls = malloc (num_instances - * sizeof(char *)); - if (! output->details.donation_receipt.donau_urls) - { - json_decref (json_donau_instances); - GNUNET_break_op (0); - reply_with_error (oc, - MHD_HTTP_INTERNAL_SERVER_ERROR, - TALER_EC_GENERIC_CLIENT_INTERNAL_ERROR, - "donau url parsing allocating memory"); - return; - } - output->details.donation_receipt.donau_urls_len = num_instances; - - for (size_t i = 0; i < num_instances; i++) - { - const json_t *url_json = json_array_get (json_donau_instances, i); - const char *url_str = json_string_value (url_json); - output->details.donation_receipt.donau_urls[i] = GNUNET_strdup ( - url_str); - } - } - } - json_decref (json_donau_instances); }