40e89d02e33ae7eda77209e31b4b77a11a951fc1
[src/app-framework-binder.git] / src / afbs-api.c
1 /*
2  * Copyright (C) 2015 "IoT.bzh"
3  * Author "Fulup Ar Foll"
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  */
18
19
20 #include "local-def.h"
21
22 STATIC json_object* pingAfbs (AFB_session *session, AFB_request *request) {
23     static pingcount=0;
24     json_object *response;
25     const char * argval;
26     
27     argval=getQueryValue (request, "arg");
28     if (argval == NULL) {
29         argval="No present in query";
30     };
31     
32     response = jsonNewMessage(AFB_SUCCESS, "Ping Application Framework %d [arg=%s]", pingcount++, argval);
33     if (verbose) fprintf(stderr, "%d: \n", pingcount);
34     return (response);
35 };
36
37
38 STATIC  AFB_restapi pluginApis[]= {
39   {"ping"     , (AFB_apiCB)pingSample ,"Ping Service"},
40   {"get-all"  , (AFB_apiCB)pingAfbs ,"Ping Application Framework"},
41   {"get-one"  , (AFB_apiCB)pingSample ,"Verbose Mode"},
42   {"start-one", (AFB_apiCB)pingSample ,"Verbose Mode"},
43   {"stop-one" , (AFB_apiCB)pingSample ,"Verbose Mode"},
44   {"probe-one", (AFB_apiCB)pingSample ,"Verbose Mode"},
45   {"ctx-store", (AFB_apiCB)pingSample ,"Verbose Mode"},
46   {"ctx-load" , (AFB_apiCB)pingSample ,"Verbose Mode"},
47   {0,0,0}
48 };
49
50 PUBLIC AFB_plugin *afsvRegister (AFB_session *session) {
51     AFB_plugin *plugin = malloc (sizeof (AFB_plugin));
52     plugin->type  = AFB_PLUGIN; 
53     plugin->info  = "Application Framework Binder Service";
54     plugin->prefix= "afbs";  // url base
55     plugin->apis  = pluginApis;
56     
57     return (plugin);
58 };