donau

Donation authority for GNU Taler (experimental)
Log | Files | Refs | Submodules | README | LICENSE

commit c7198a769483803a8437e4c5cebdf81d13d493a3
parent a4db1d43e1a67659d40a0612f8fffb5cccd4f0e4
Author: Casaburi Johannes <johannes.casaburi@students.bfh.ch>
Date:   Fri,  5 Jan 2024 17:09:44 +0100

charity get

Diffstat:
Msrc/donau/donau-httpd_get-charity.c | 32++++++++++++++++++--------------
1 file changed, 18 insertions(+), 14 deletions(-)

diff --git a/src/donau/donau-httpd_get-charity.c b/src/donau/donau-httpd_get-charity.c @@ -42,14 +42,10 @@ DH_handler_charity_get ( struct DH_RequestContext *rc, const char *const args[]) { - int charity_id; + unsigned long long int charity_id; if ( (NULL == args[0]) || - (GNUNET_OK != - GNUNET_STRINGS_string_to_data (args[0], - strlen (args[0]), - &charity_id, - sizeof (charity_id))) ) + (1 != sscanf(args[0], "%llu", &charity_id))) { GNUNET_break_op (0); return TALER_MHD_reply_with_error (rc->connection, @@ -75,8 +71,8 @@ DH_handler_charity_get ( charity_info = json_array (); GNUNET_assert (NULL != charity_info); qs = DH_plugin->select_charity_info (DH_plugin->cls, - &charity_id, - charity_info); + &charity_id, + charity_info); switch (qs) { case GNUNET_DB_STATUS_HARD_ERROR: @@ -90,7 +86,6 @@ DH_handler_charity_get ( case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS: if (none) { - json_decref (charity_info); return TALER_MHD_reply_static ( rc->connection, MHD_HTTP_NO_CONTENT, @@ -102,11 +97,20 @@ DH_handler_charity_get ( case GNUNET_DB_STATUS_SUCCESS_ONE_RESULT: break; } - return TALER_MHD_REPLY_JSON_PACK ( - rc->connection, - MHD_HTTP_OK, - GNUNET_JSON_pack_array_steal ("charity_info", - charity_info)); + + static struct MHD_Response *resp; + + if (NULL == resp) + { + resp = TALER_MHD_MAKE_JSON_PACK ( + GNUNET_JSON_pack_string ("url", + qs->charity_url), + GNUNET_JSON_pack_string ("name", + qs->charity_name)); + } + return MHD_queue_response (rc->connection, + MHD_HTTP_OK, + resp); } }