aboutsummaryrefslogtreecommitdiff
path: root/src/json/json.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2016-10-20 21:19:01 +0200
committerChristian Grothoff <christian@grothoff.org>2016-10-20 21:19:01 +0200
commit19f4c50dabd6a4c29749a9c758e7e0da99d9e31f (patch)
tree559cbffee16240be807eeba641dbcf695891609d /src/json/json.c
parent63c5706b64a5fe2989514c5f18e2926b91e420de (diff)
rename and move TALER_EXCHANGE_json_get_error_code to TALER_JSON_get_error_code
Diffstat (limited to 'src/json/json.c')
-rw-r--r--src/json/json.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/json/json.c b/src/json/json.c
index 8f21447ec..74559e6c5 100644
--- a/src/json/json.c
+++ b/src/json/json.c
@@ -50,4 +50,33 @@ TALER_JSON_hash (const json_t *json,
}
+
+/**
+ * Extract the Taler error code from the given @a json object.
+ * Note that #TALER_EC_NONE is returned if no "code" is present.
+ *
+ * @param json response to extract the error code from
+ * @return the "code" value from @a json
+ */
+enum TALER_ErrorCode
+TALER_JSON_get_error_code (const json_t *json)
+{
+ const json_t *jc;
+
+ if (NULL == json)
+ {
+ GNUNET_break_op (0);
+ return TALER_EC_INVALID_RESPONSE;
+ }
+ jc = json_object_get (json, "code");
+ if (NULL == jc)
+ return TALER_EC_NONE;
+ if (json_is_integer (jc))
+ return (enum TALER_ErrorCode) json_integer_value (jc);
+ GNUNET_break_op (0);
+ return TALER_EC_INVALID;
+}
+
+
+
/* End of json/json.c */