summaryrefslogtreecommitdiff
path: root/src/backend/taler-merchant-httpd_private-get-products-ID.c
diff options
context:
space:
mode:
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.c66
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;
}
}