diff options
author | Clément Bénier <clement.benier@iot.bzh> | 2018-11-22 10:52:30 +0100 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2018-12-12 17:44:41 +0100 |
commit | e849d36204e9791eb6f49165162f7bc05cecb776 (patch) | |
tree | 281b0d6289cbdcc667ee0915cfdece766076e350 | |
parent | 303022b794410a69daeb47e20a87fe7625b18703 (diff) |
AFB:servsync: add string for query argument
for query argument add string that will be converted to json object
Change-Id: I75b669a6c02838fd31017b82e9093966f3eea0e6
Signed-off-by: Clément Bénier <clement.benier@iot.bzh>
-rw-r--r-- | ctl-lib/ctl-lua.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/ctl-lib/ctl-lua.c b/ctl-lib/ctl-lua.c index 1a2554c..08c9b85 100644 --- a/ctl-lib/ctl-lua.c +++ b/ctl-lib/ctl-lua.c @@ -498,7 +498,7 @@ static int LuaAfbServiceSync(lua_State* luaState) { } // note: argument start at 2 because of AFB: table - if (count != 5 || !lua_isstring(luaState, LUA_FIRST_ARG + 1) || !lua_isstring(luaState, LUA_FIRST_ARG + 2) || !lua_istable(luaState, LUA_FIRST_ARG + 3)) { + if (count != 5 || !lua_isstring(luaState, LUA_FIRST_ARG + 1) || !lua_isstring(luaState, LUA_FIRST_ARG + 2) || (!lua_istable(luaState, LUA_FIRST_ARG + 3) && !lua_isstring(luaState, LUA_FIRST_ARG +3))) { lua_pushliteral(luaState, "ERROR: syntax AFB:servsync(source, api, verb, {[Lua Table]})"); lua_error(luaState); return 1; @@ -508,7 +508,12 @@ static int LuaAfbServiceSync(lua_State* luaState) { // get source/api/verb+query const char *api = lua_tostring(luaState, LUA_FIRST_ARG + 1); const char *verb = lua_tostring(luaState, LUA_FIRST_ARG + 2); - json_object *queryJ = LuaTableToJson(source, luaState, LUA_FIRST_ARG + 3); + json_object *queryJ = NULL; + if (lua_istable(luaState, LUA_FIRST_ARG + 3)) { + queryJ = LuaTableToJson(source, luaState, LUA_FIRST_ARG + 3); + } else { + queryJ = json_object_new_string(lua_tostring(luaState, LUA_FIRST_ARG + 3)); + } int iserror = AFB_ServiceSync(source->api, api, verb, queryJ, &responseJ); |