Localize construction of afb_arg
authorJosé Bollo <jose.bollo@iot.bzh>
Fri, 2 Jun 2017 13:38:13 +0000 (15:38 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Fri, 2 Jun 2017 13:38:13 +0000 (15:38 +0200)
Change-Id: I08f1bc228c419243044949aa3c4094873932d3f2
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
src/afb-msg-json.c
src/afb-msg-json.h
src/afb-xreq.c

index f2922cb..6aaec43 100644 (file)
 
 #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);
index 0434e20..b2f75f2 100644 (file)
@@ -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();
index fbed6ed..9c4cab8 100644 (file)
@@ -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)