diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-08-01 19:59:40 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-08-01 19:59:44 +0200 |
commit | bcf5863eb45523615540ac99ab81fd131bd2f413 (patch) | |
tree | 0086e76a9009289073c7b07338d072d6baac8e11 /src/backend/taler-merchant-httpd_private-get-products-ID.c | |
parent | c4d13313b9beff9b8b2948604ae0f6561721c33c (diff) | |
download | merchant-bcf5863eb45523615540ac99ab81fd131bd2f413.tar.gz merchant-bcf5863eb45523615540ac99ab81fd131bd2f413.tar.bz2 merchant-bcf5863eb45523615540ac99ab81fd131bd2f413.zip |
-more json_pack fixes
Diffstat (limited to 'src/backend/taler-merchant-httpd_private-get-products-ID.c')
-rw-r--r-- | src/backend/taler-merchant-httpd_private-get-products-ID.c | 66 |
1 files changed, 28 insertions, 38 deletions
diff --git a/src/backend/taler-merchant-httpd_private-get-products-ID.c b/src/backend/taler-merchant-httpd_private-get-products-ID.c index 48b04499..6af8236c 100644 --- a/src/backend/taler-merchant-httpd_private-get-products-ID.c +++ b/src/backend/taler-merchant-httpd_private-get-products-ID.c @@ -61,49 +61,39 @@ TMH_private_get_products_ID (const struct TMH_RequestHandler *rh, hc->infix); } { - json_t *reply; MHD_RESULT ret; - reply = json_pack ( - "{s:s, s:o, s:s, s:o, s:s," - " s:o, s:I, s:I, s:I, s:o}", - "description", - pd.description, - "description_i18n", - pd.description_i18n, - "unit", - pd.unit, - "price", - TALER_JSON_from_amount (&pd.price), - "image", - pd.image, - /* end of first group of 5 */ - "taxes", - pd.taxes, - "total_stock", - (INT64_MAX == pd.total_stock) - ? (json_int_t) -1 - : (json_int_t) pd.total_stock, - "total_sold", - (json_int_t) pd.total_sold, - "total_lost", - (json_int_t) pd.total_lost, - "address", - pd.address); - GNUNET_assert (NULL != reply); + ret = TALER_MHD_REPLY_JSON_PACK ( + connection, + MHD_HTTP_OK, + GNUNET_JSON_pack_string ("description", + pd.description), + GNUNET_JSON_pack_object_steal ("description_i18n", + pd.description_i18n), + GNUNET_JSON_pack_string ("unit", + pd.unit), + TALER_JSON_pack_amount ("price", + &pd.price), + GNUNET_JSON_pack_string ("image", + pd.image), + GNUNET_JSON_pack_array_steal ("taxes", + pd.taxes), + GNUNET_JSON_pack_int64 ("total_stock", + (INT64_MAX == pd.total_stock) + ? -1LL + : pd.total_stock), + GNUNET_JSON_pack_uint64 ("total_sold", + pd.total_sold), + GNUNET_JSON_pack_uint64 ("total_lost", + pd.total_lost), + GNUNET_JSON_pack_object_steal ("address", + pd.address), + GNUNET_JSON_pack_allow_null ( + GNUNET_JSON_pack_time_abs ("next_restock", + (pd.next_restock)))); GNUNET_free (pd.description); GNUNET_free (pd.image); GNUNET_free (pd.unit); - if (0 != pd.next_restock.abs_value_us) - GNUNET_assert (0 == - json_object_set_new ( - reply, - "next_restock", - GNUNET_JSON_from_time_abs (pd.next_restock))); - ret = TALER_MHD_reply_json (connection, - reply, - MHD_HTTP_OK); - json_decref (reply); return ret; } } |