diff --git a/src/include/taler_mhd_lib.h b/src/include/taler_mhd_lib.h index 7f38ffcf5..b0012a645 100644 --- a/src/include/taler_mhd_lib.h +++ b/src/include/taler_mhd_lib.h @@ -249,6 +249,17 @@ TALER_MHD_make_json_pack (const char *fmt, TALER_MHD_make_json_steal (GNUNET_JSON_PACK (__VA_ARGS__)) +/** + * Pack Taler error code @a ec and associated hint into a + * JSON object. + * + * @param ec error code to pack + * @return packer array entries (two!) + */ +#define TALER_MHD_PACK_EC(ec) \ + GNUNET_JSON_pack_uint64 ("code", ec), \ + GNUNET_JSON_pack_string ("hint", TALER_ErrorCode_get_hint (ec)) + /** * Create a response indicating an internal error. * diff --git a/src/mhd/mhd_responses.c b/src/mhd/mhd_responses.c index 2918440a2..a639f4052 100644 --- a/src/mhd/mhd_responses.c +++ b/src/mhd/mhd_responses.c @@ -371,8 +371,7 @@ TALER_MHD_make_error (enum TALER_ErrorCode ec, const char *detail) { return TALER_MHD_MAKE_JSON_PACK ( - GNUNET_JSON_pack_uint64 ("code", ec), - GNUNET_JSON_pack_string ("hint", TALER_ErrorCode_get_hint (ec)), + TALER_MHD_PACK_EC (ec), GNUNET_JSON_pack_allow_null ( GNUNET_JSON_pack_string ("detail", detail))); } @@ -387,8 +386,7 @@ TALER_MHD_reply_with_error (struct MHD_Connection *connection, return TALER_MHD_REPLY_JSON_PACK ( connection, http_status, - GNUNET_JSON_pack_uint64 ("code", ec), - GNUNET_JSON_pack_string ("hint", TALER_ErrorCode_get_hint (ec)), + TALER_MHD_PACK_EC (ec), GNUNET_JSON_pack_allow_null ( GNUNET_JSON_pack_string ("detail", detail))); }