prepares event propagation
[src/app-framework-binder.git] / plugins / samples / SamplePost.c
index 58a2a8b..f484d13 100644 (file)
@@ -2,18 +2,17 @@
  * Copyright (C) 2015 "IoT.bzh"
  * Author "Fulup Ar Foll"
  *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
  *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 #define _GNU_SOURCE
 #include <json.h>
 
 #include "afb-plugin.h"
-#include "afb-req-itf.h"
 
 
-static int fillargs(json_object *args, struct afb_arg arg)
-{
-    json_object *obj;
-
-    obj = json_object_new_object();
-    json_object_object_add (obj, "value", json_object_new_string(arg.value));
-    json_object_object_add (obj, "path", json_object_new_string(arg.path));
-    json_object_object_add (obj, "size", json_object_new_int64((int64_t)arg.size));
-    json_object_object_add (args, arg.name && *arg.name ? arg.name : "<empty-string>", obj);
-    return 1; /* continue to iterate */
-}
-
 // Sample Generic Ping Debug API
 static void getPingTest(struct afb_req request)
 {
     static int pingcount = 0;
-    json_object *query;
-
-    query = json_object_new_object();
-    afb_req_iterate(request, (void*)fillargs, query);
+    json_object *query = afb_req_json(request);
 
     afb_req_success_f(request, query, "Ping Binder Daemon count=%d", ++pingcount);
 }
@@ -52,12 +35,9 @@ static void getPingTest(struct afb_req request)
 // With content-type=json data are directly avaliable in request->post->data
 static void GetJsonByPost (struct afb_req request)
 {
-    json_object* jresp;
-    json_object *query;
     struct afb_arg arg;
-
-    query = json_object_new_object();
-    afb_req_iterate(request, (void*)fillargs, query);
+    json_object* jresp;
+    json_object *query = afb_req_json(request);
 
     arg = afb_req_get(request, "");
     jresp = arg.value ? json_tokener_parse(arg.value) : NULL;