diff options
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; } } |