diff options
author | José Bollo <jose.bollo@iot.bzh> | 2017-06-02 15:38:13 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2017-06-02 15:38:13 +0200 |
commit | d3c80685ed6067f4899635c0328bbd8b70a2ed90 (patch) | |
tree | d2e0a04cc8ccf032ec8f8893252d47cfb74d1e84 | |
parent | 16899582de97ffa492768e5d96cec813f44417ea (diff) |
Localize construction of afb_arg
Change-Id: I08f1bc228c419243044949aa3c4094873932d3f2
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-rw-r--r-- | src/afb-msg-json.c | 19 | ||||
-rw-r--r-- | src/afb-msg-json.h | 2 | ||||
-rw-r--r-- | src/afb-xreq.c | 19 |
3 files changed, 16 insertions, 24 deletions
diff --git a/src/afb-msg-json.c b/src/afb-msg-json.c index f2922cb8..6aaec434 100644 --- a/src/afb-msg-json.c +++ b/src/afb-msg-json.c @@ -19,12 +19,9 @@ #include <json-c/json.h> -#include <afb/afb-req-itf.h> - #include "afb-msg-json.h" #include "afb-context.h" - struct json_object *afb_msg_json_reply(const char *status, const char *info, struct json_object *resp, struct afb_context *context, const char *reqid) { json_object *msg, *request; @@ -89,22 +86,6 @@ struct json_object *afb_msg_json_event(const char *event, struct json_object *ob return msg; } -struct afb_arg afb_msg_json_get_arg(struct json_object *object, const char *name) -{ - struct afb_arg arg; - struct json_object *value; - - if (json_object_object_get_ex(object, name, &value)) { - arg.name = name; - arg.value = json_object_get_string(value); - } else { - arg.name = NULL; - arg.value = NULL; - } - arg.path = NULL; - return arg; -} - struct json_object *afb_msg_json_internal_error() { return afb_msg_json_reply_error("failed", "internal error", NULL, NULL); diff --git a/src/afb-msg-json.h b/src/afb-msg-json.h index 0434e209..b2f75f2d 100644 --- a/src/afb-msg-json.h +++ b/src/afb-msg-json.h @@ -27,6 +27,4 @@ extern struct json_object *afb_msg_json_reply_error(const char *status, const ch extern struct json_object *afb_msg_json_event(const char *event, struct json_object *object); -extern struct afb_arg afb_msg_json_get_arg(struct json_object *object, const char *name); - extern struct json_object *afb_msg_json_internal_error(); diff --git a/src/afb-xreq.c b/src/afb-xreq.c index fbed6ed1..9c4cab8f 100644 --- a/src/afb-xreq.c +++ b/src/afb-xreq.c @@ -63,10 +63,23 @@ static struct json_object *xreq_json_cb(void *closure) static struct afb_arg xreq_get_cb(void *closure, const char *name) { struct afb_xreq *xreq = closure; + struct afb_arg arg; + struct json_object *object, *value; + if (xreq->queryitf->get) - return xreq->queryitf->get(xreq, name); - else - return afb_msg_json_get_arg(xreq_json_cb(closure), name); + arg = xreq->queryitf->get(xreq, name); + else { + object = xreq_json_cb(closure); + if (json_object_object_get_ex(object, name, &value)) { + arg.name = name; + arg.value = json_object_get_string(value); + } else { + arg.name = NULL; + arg.value = NULL; + } + arg.path = NULL; + } + return arg; } static void xreq_success_cb(void *closure, struct json_object *obj, const char *info) |