From 4921883434749752ac82a0cbab8e6e57120800c5 Mon Sep 17 00:00:00 2001 From: Fulup Ar Foll Date: Wed, 23 Aug 2017 01:00:20 +0200 Subject: Restore Basic HTML5 testing Scenario as a Standalone Controller --- afb-source/ctl-apidef.h | 103 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 afb-source/ctl-apidef.h (limited to 'afb-source/ctl-apidef.h') diff --git a/afb-source/ctl-apidef.h b/afb-source/ctl-apidef.h new file mode 100644 index 0000000..9ce9e05 --- /dev/null +++ b/afb-source/ctl-apidef.h @@ -0,0 +1,103 @@ + +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\":\"c" + "ontroler\",\"version\":\"1.0\",\"x-binding-c-generator\":{\"api\":\"cont" + "rol\",\"version\":2,\"prefix\":\"ctlapi_\",\"postfix\":\"\",\"start\":nu" + "ll,\"onevent\":\"DispatchOneEvent\",\"init\":\"CtlBindingInit\",\"scope\"" + ":\"\",\"private\":false}},\"servers\":[{\"url\":\"ws://{host}:{port}/api" + "/polctl\",\"description\":\"Unicens2 API.\",\"variables\":{\"host\":{\"d" + "efault\":\"localhost\"},\"port\":{\"default\":\"1234\"}},\"x-afb-events\"" + ":[{\"$ref\":\"#/components/schemas/afb-event\"}]}],\"components\":{\"sch" + "emas\":{\"afb-reply\":{\"$ref\":\"#/components/schemas/afb-reply-v2\"},\"" + "afb-event\":{\"$ref\":\"#/components/schemas/afb-event-v2\"},\"afb-reply" + "-v2\":{\"title\":\"Generic response.\",\"type\":\"object\",\"required\":" + "[\"jtype\",\"request\"],\"properties\":{\"jtype\":{\"type\":\"string\",\"" + "const\":\"afb-reply\"},\"request\":{\"type\":\"object\",\"required\":[\"" + "status\"],\"properties\":{\"status\":{\"type\":\"string\"},\"info\":{\"t" + "ype\":\"string\"},\"token\":{\"type\":\"string\"},\"uuid\":{\"type\":\"s" + "tring\"},\"reqid\":{\"type\":\"string\"}}},\"response\":{\"type\":\"obje" + "ct\"}}},\"afb-event-v2\":{\"type\":\"object\",\"required\":[\"jtype\",\"" + "event\"],\"properties\":{\"jtype\":{\"type\":\"string\",\"const\":\"afb-" + "event\"},\"event\":{\"type\":\"string\"},\"data\":{\"type\":\"object\"}}" + "}},\"x-permissions\":{\"monitor\":{\"permission\":\"urn:AGL:permission:a" + "udio:public:monitor\"},\"multimedia\":{\"permission\":\"urn:AGL:permissi" + "on:audio:public:monitor\"},\"navigation\":{\"permission\":\"urn:AGL:perm" + "ission:audio:public:monitor\"},\"emergency\":{\"permission\":\"urn:AGL:p" + "ermission:audio:public:emergency\"}},\"responses\":{\"200\":{\"descripti" + "on\":\"A complex object array response\",\"content\":{\"application/json" + "\":{\"schema\":{\"$ref\":\"#/components/schemas/afb-reply\"}}}}}},\"path" + "s\":{\"/monitor\":{\"description\":\"Subcribe Audio Agent Policy Control" + " End\",\"get\":{\"x-permissions\":{\"$ref\":\"#/components/x-permissions" + "/monitor\"},\"parameters\":[{\"in\":\"query\",\"name\":\"event_patern\"," + "\"required\":true,\"schema\":{\"type\":\"string\"}}],\"responses\":{\"20" + "0\":{\"$ref\":\"#/components/responses/200\"}}}},\"/dispatch\":{\"descri" + "ption\":\"Request Access to Navigation Audio Channel.\",\"get\":{\"x-per" + "missions\":{\"$ref\":\"#/components/x-permissions/navigation\"},\"parame" + "ters\":[{\"in\":\"query\",\"name\":\"zone\",\"required\":false,\"schema\"" + ":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"$ref\":\"#/components" + "/responses/200\"}}}},\"/request\":{\"description\":\"Execute LUA string " + "script.\",\"get\":{\"x-permissions\":{\"$ref\":\"#/components/x-permissi" + "ons/navigation\"},\"parameters\":[{\"in\":\"query\",\"name\":\"func\",\"" + "required\":true,\"schema\":{\"type\":\"string\"}},{\"in\":\"query\",\"na" + "me\":\"args\",\"required\":false,\"schema\":{\"type\":\"array\"}}],\"res" + "ponses\":{\"200\":{\"$ref\":\"#/components/responses/200\"}}}},\"/debugl" + "ua\":{\"description\":\"Execute LUA string script.\",\"get\":{\"x-permis" + "sions\":{\"$ref\":\"#/components/x-permissions/navigation\"},\"parameter" + "s\":[{\"in\":\"query\",\"name\":\"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_dispatch(struct afb_req req); + void ctlapi_request(struct afb_req req); + void ctlapi_debuglua(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 = "dispatch", + .callback = ctlapi_dispatch, + .auth = &_afb_auths_v2_control[0], + .info = NULL, + .session = AFB_SESSION_NONE_V2 + }, + { + .verb = "request", + .callback = ctlapi_request, + .auth = &_afb_auths_v2_control[0], + .info = NULL, + .session = AFB_SESSION_NONE_V2 + }, + { + .verb = "debuglua", + .callback = ctlapi_debuglua, + .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 = DispatchOneEvent, + .noconcurrency = 0 +}; + -- cgit 1.2.3-korg