diff options
author | Christian Grothoff <christian@grothoff.org> | 2020-04-05 22:05:38 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2020-04-05 22:05:38 +0200 |
commit | bf8c5982a2e79f0b5198a0033dd41e9702d093f9 (patch) | |
tree | 93b62feb9b7e24ae3d4f73b1a5f883a8fc368bfe /src/json/json.c | |
parent | 5059da7108fb2d65fc3844ffe695574c532f8dff (diff) | |
download | exchange-bf8c5982a2e79f0b5198a0033dd41e9702d093f9.tar.xz |
make exchange API more uniform in how information is returned
Diffstat (limited to 'src/json/json.c')
-rw-r--r-- | src/json/json.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/json/json.c b/src/json/json.c index f0c0aff57..67d62605f 100644 --- a/src/json/json.c +++ b/src/json/json.c @@ -93,6 +93,36 @@ TALER_JSON_get_error_code (const json_t *json) /** + * Extract the Taler error hint from the given @a json object. + * Note that NULL is returned if no "hint" is present. + * + * @param json response to extract the error hint from + * @return the "hint" value from @a json; only valid as long as @a json is valid + */ +const char * +TALER_JSON_get_error_hint (const json_t *json) +{ + const json_t *jc; + + if (NULL == json) + { + GNUNET_break_op (0); + return NULL; + } + jc = json_object_get (json, "hint"); + if (NULL == jc) + return NULL; /* no hint, is allowed */ + if (! json_is_string (jc)) + { + /* Hints must be strings */ + GNUNET_break_op (0); + return NULL; + } + return json_string_value (jc); +} + + +/** * Extract the Taler error code from the given @a data object, which is expected to be in JSON. * Note that #TALER_EC_INVALID is returned if no "code" is present or if @a data is not in JSON. * |