From f817ce67ff6344f181d221c859e1cb2231a3dac4 Mon Sep 17 00:00:00 2001 From: fulup Date: Tue, 8 Aug 2017 18:52:13 +0200 Subject: Early Draft of LUA integration --- Controler-afb/ctl-apidef.h | 128 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 Controler-afb/ctl-apidef.h (limited to 'Controler-afb/ctl-apidef.h') diff --git a/Controler-afb/ctl-apidef.h b/Controler-afb/ctl-apidef.h new file mode 100644 index 0000000..0ab4cd2 --- /dev/null +++ b/Controler-afb/ctl-apidef.h @@ -0,0 +1,128 @@ + +static const char _afb_description_v2_control[] = + "{\"openapi\":\"3.0.0\",\"$schema\":\"http:iot.bzh/download/openapi/schem" + "a-3.0/default-schema.json\",\"info\":{\"description\":\"\",\"title\":\"p" + "olctl\",\"version\":\"1.0\",\"x-binding-c-generator\":{\"api\":\"control" + "\",\"version\":2,\"prefix\":\"ctlapi_\",\"postfix\":\"\",\"start\":null," + "\"onevent\":null,\"init\":\"CtlBindingInit\",\"scope\":\"\",\"private\":" + "false}},\"servers\":[{\"url\":\"ws://{host}:{port}/api/polctl\",\"descri" + "ption\":\"Unicens2 API.\",\"variables\":{\"host\":{\"default\":\"localho" + "st\"},\"port\":{\"default\":\"1234\"}},\"x-afb-events\":[{\"$ref\":\"#/c" + "omponents/schemas/afb-event\"}]}],\"components\":{\"schemas\":{\"afb-rep" + "ly\":{\"$ref\":\"#/components/schemas/afb-reply-v2\"},\"afb-event\":{\"$" + "ref\":\"#/components/schemas/afb-event-v2\"},\"afb-reply-v2\":{\"title\"" + ":\"Generic response.\",\"type\":\"object\",\"required\":[\"jtype\",\"req" + "uest\"],\"properties\":{\"jtype\":{\"type\":\"string\",\"const\":\"afb-r" + "eply\"},\"request\":{\"type\":\"object\",\"required\":[\"status\"],\"pro" + "perties\":{\"status\":{\"type\":\"string\"},\"info\":{\"type\":\"string\"" + "},\"token\":{\"type\":\"string\"},\"uuid\":{\"type\":\"string\"},\"reqid" + "\":{\"type\":\"string\"}}},\"response\":{\"type\":\"object\"}}},\"afb-ev" + "ent-v2\":{\"type\":\"object\",\"required\":[\"jtype\",\"event\"],\"prope" + "rties\":{\"jtype\":{\"type\":\"string\",\"const\":\"afb-event\"},\"event" + "\":{\"type\":\"string\"},\"data\":{\"type\":\"object\"}}}},\"x-permissio" + "ns\":{\"monitor\":{\"permission\":\"urn:AGL:permission:audio:public:moni" + "tor\"},\"multimedia\":{\"permission\":\"urn:AGL:permission:audio:public:" + "monitor\"},\"navigation\":{\"permission\":\"urn:AGL:permission:audio:pub" + "lic:monitor\"},\"emergency\":{\"permission\":\"urn:AGL:permission:audio:" + "public:emergency\"}},\"responses\":{\"200\":{\"description\":\"A complex" + " object array response\",\"content\":{\"application/json\":{\"schema\":{" + "\"$ref\":\"#/components/schemas/afb-reply\"}}}}}},\"paths\":{\"/monitor\"" + ":{\"description\":\"Subcribe Audio Agent Policy Control End\",\"get\":{\"" + "x-permissions\":{\"$ref\":\"#/components/x-permissions/monitor\"},\"para" + "meters\":[{\"in\":\"query\",\"name\":\"event_patern\",\"required\":true," + "\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"$ref\":\"#/" + "components/responses/200\"}}}},\"/event_test\":{\"description\":\"Pause " + "Resume Test\",\"get\":{\"x-permissions\":{\"$ref\":\"#/components/x-perm" + "issions/monitor\"},\"parameters\":[{\"in\":\"query\",\"name\":\"delay\"," + "\"required\":false,\"schema\":{\"type\":\"interger\"}},{\"in\":\"query\"" + ",\"name\":\"count\",\"required\":false,\"schema\":{\"type\":\"interger\"" + "}}],\"responses\":{\"200\":{\"$ref\":\"#/components/responses/200\"}}}}," + "\"/navigation\":{\"description\":\"Request Access to Navigation Audio Ch" + "annel.\",\"get\":{\"x-permissions\":{\"$ref\":\"#/components/x-permissio" + "ns/navigation\"},\"parameters\":[{\"in\":\"query\",\"name\":\"zone\",\"r" + "equired\":false,\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\"" + ":{\"$ref\":\"#/components/responses/200\"}}}},\"/lua_docall\":{\"descrip" + "tion\":\"Execute LUA string script.\",\"get\":{\"x-permissions\":{\"$ref" + "\":\"#/components/x-permissions/navigation\"},\"parameters\":[{\"in\":\"" + "query\",\"name\":\"func\",\"required\":true,\"schema\":{\"type\":\"strin" + "g\"}},{\"in\":\"query\",\"name\":\"args\",\"required\":false,\"schema\":" + "{\"type\":\"array\"}}],\"responses\":{\"200\":{\"$ref\":\"#/components/r" + "esponses/200\"}}}},\"/lua_dostring\":{\"description\":\"Execute LUA stri" + "ng script.\",\"get\":{\"x-permissions\":{\"$ref\":\"#/components/x-permi" + "ssions/navigation\"},\"parameters\":[{\"in\":\"query\",\"required\":true" + ",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"$ref\":\"#" + "/components/responses/200\"}}}},\"/lua_doscript\":{\"description\":\"Exe" + "cute LUA string script.\",\"get\":{\"x-permissions\":{\"$ref\":\"#/compo" + "nents/x-permissions/navigation\"},\"parameters\":[{\"in\":\"query\",\"na" + "me\":\"filename\",\"required\":true,\"schema\":{\"type\":\"string\"}}],\"" + "responses\":{\"200\":{\"$ref\":\"#/components/responses/200\"}}}}}}" +; + +static const struct afb_auth _afb_auths_v2_control[] = { + { .type = afb_auth_Permission, .text = "urn:AGL:permission:audio:public:monitor" } +}; + + void ctlapi_monitor(struct afb_req req); + void ctlapi_event_test(struct afb_req req); + void ctlapi_navigation(struct afb_req req); + void ctlapi_lua_docall(struct afb_req req); + void ctlapi_lua_dostring(struct afb_req req); + void ctlapi_lua_doscript(struct afb_req req); + +static const struct afb_verb_v2 _afb_verbs_v2_control[] = { + { + .verb = "monitor", + .callback = ctlapi_monitor, + .auth = &_afb_auths_v2_control[0], + .info = NULL, + .session = AFB_SESSION_NONE_V2 + }, + { + .verb = "event_test", + .callback = ctlapi_event_test, + .auth = &_afb_auths_v2_control[0], + .info = NULL, + .session = AFB_SESSION_NONE_V2 + }, + { + .verb = "navigation", + .callback = ctlapi_navigation, + .auth = &_afb_auths_v2_control[0], + .info = NULL, + .session = AFB_SESSION_NONE_V2 + }, + { + .verb = "lua_docall", + .callback = ctlapi_lua_docall, + .auth = &_afb_auths_v2_control[0], + .info = NULL, + .session = AFB_SESSION_NONE_V2 + }, + { + .verb = "lua_dostring", + .callback = ctlapi_lua_dostring, + .auth = &_afb_auths_v2_control[0], + .info = NULL, + .session = AFB_SESSION_NONE_V2 + }, + { + .verb = "lua_doscript", + .callback = ctlapi_lua_doscript, + .auth = &_afb_auths_v2_control[0], + .info = NULL, + .session = AFB_SESSION_NONE_V2 + }, + { .verb = NULL } +}; + +const struct afb_binding_v2 afbBindingV2 = { + .api = "control", + .specification = _afb_description_v2_control, + .info = NULL, + .verbs = _afb_verbs_v2_control, + .preinit = NULL, + .init = CtlBindingInit, + .onevent = NULL, + .noconcurrency = 0 +}; + -- cgit 1.2.3-korg