diff options
author | Fulup Ar Foll <fulup@iot.bzh> | 2015-12-16 17:15:43 +0100 |
---|---|---|
committer | Fulup Ar Foll <fulup@iot.bzh> | 2015-12-16 17:15:43 +0100 |
commit | 475508baa9f0b21087eb85048d51af342aa09692 (patch) | |
tree | f3e944401efc59c68110f54fcea7f569e928a42f /afb-client/app/Backend/RestApis | |
parent | f7e443f996dceb928a047d06e45f59579f1fbc0e (diff) |
Add the app!!!
Diffstat (limited to 'afb-client/app/Backend/RestApis')
-rw-r--r-- | afb-client/app/Backend/RestApis/PostMockApi.js | 37 | ||||
-rw-r--r-- | afb-client/app/Backend/RestApis/TokenMockApi.js | 114 | ||||
-rw-r--r-- | afb-client/app/Backend/RestApis/_all.js | 29 |
3 files changed, 180 insertions, 0 deletions
diff --git a/afb-client/app/Backend/RestApis/PostMockApi.js b/afb-client/app/Backend/RestApis/PostMockApi.js new file mode 100644 index 0000000..6299f39 --- /dev/null +++ b/afb-client/app/Backend/RestApis/PostMockApi.js @@ -0,0 +1,37 @@ +/* + * 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. + * + * 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. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +var fs = require('fs'); +var multer = require('multer'); + +function NewApi(handle, prefix) { + var self=this; + handle.trace (this,1, "Mock PostApi url=%s", prefix +'/ping'); + var upload = multer({ dest: '/tmp/uploads/' }); + + handle.app.post(prefix +'/upload', upload.single('avatar'), function (req, res) { + handle.trace (self, 1, "%s/upload file=", prefix, req.file.originalname); + var upload = multer({ dest: '/tmp/uploads/' }); + + res.send({"jtype": "TEST_message", "status": "success", "info": "done"}); + }); + +} + +// Export Class +module.exports = NewApi;
\ No newline at end of file diff --git a/afb-client/app/Backend/RestApis/TokenMockApi.js b/afb-client/app/Backend/RestApis/TokenMockApi.js new file mode 100644 index 0000000..74b565a --- /dev/null +++ b/afb-client/app/Backend/RestApis/TokenMockApi.js @@ -0,0 +1,114 @@ +/* + * 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. + * + * 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. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +/* ---------------------------------------------------------------------- + * This module simulate Application Framework Binder + * + * /api/afbs/create + * /api/afbs/check?token=123456789 + * /api/afbs/refresh?token=123456789-xxxxx + * /api/afbs/reset?123456789-xxxxx + * + * Note: this MOCK api does not handle any session login. It only returns + * a fake valid or false message depending on call order. + * Its goal is to get a quick way to check you HTML5 client rendering & behaviour. + * + * When you're happy with you HTML5 client OnePageApp check it with afb-daemon + * ----------------------------------------------------------------------*/ + + +function NewApi(handle, prefix) { + var scope=this; // I hate JavaScript + scope.connected=false; + + // Simulate Client Context Session Creation + handle.app.post(prefix +'/create', function (req, res) { + handle.trace (scope, 1, "%s/create body=%s", prefix, req.body.action); + var okResponse= '{ "jtype": "AJB_reply"' + + ', "request": { "prefix": "afbs", "api": "create", "uuid": "e4ef5e66-xxxx", "token": "123456789-xxxxx", "status": "processed" }'+ + ', "response": { "token": "Token was refreshed" }'+ + '}'; + + var fxResponse= '{ "jtype": "AJB_reply" ' + + ', "request": { "prefix": "afbs", "api": "create", "status": "fail", "info": "AFB_SESSION_REFRESH Not Initial Token Chain" }'+ + '}'; + + if (scope.connected) res.status(401).send(fxResponse); + else { + res.send(okResponse); + scope.connected=true; + } + }); + + + // Simulate Client Context Check + handle.app.post(prefix +'/check', function (req, res) { + handle.trace (scope, 1, "%s/check query=%s", prefix, req.query.token); + var okResponse= '{"jtype":"AJB_reply"'+ + ',"request":{"prefix":"afbs","api":"check", "status":"processed"}'+ + ',"response":{"isvalid":true}'+ + '}'; + + var fxResponse= '{"jtype":"AJB_reply",'+ + '"request":{"prefix":"afbs","api":"check","status":"empty","info":"AFB_SESSION_CHECK Not a Valid Active Token"}'+ + '}'; + + if (!scope.connected) res.status(401).send(fxResponse); + else res.send(okResponse); + }); + + // Simulate Client Context Check + handle.app.post(prefix +'/refresh', function (req, res) { + handle.trace (scope, 1, "%s/refresh query=%s", prefix, req.query.token); + var okResponse= '{"jtype":"AJB_reply"'+ + ',"request":{"prefix":"afbs","api":"refresh","uuid": "e4ef5e66-xxxx", "token": "123456789-xxxxx","status":"processed"}'+ + ',"response":{"isvalid":true}'+ + '}'; + + var fxResponse= '{"jtype":"AJB_reply",'+ + '"request":{"prefix":"afbs","api":"refresh","status":"empty","info":"AFB_SESSION_REFRESH Not a Valid Active Token"}'+ + '}'; + + if (!scope.connected) res.status(401).send(fxResponse); + else res.send(okResponse); + }); + + // Simulate Client Context Session Closing + handle.app.post(prefix +'/reset', function (req, res) { + handle.trace (scope, 1, "%s/reset query=%s", prefix, req.query.token); + var okResponse= '{"jtype":"AJB_reply"'+ + ',"request":{"prefix":"afbs","api":"reset","uuid": "e4ef5e66-xxxx","status":"processed"}'+ + ',"response":{"uuid":"b028b883-8b47-4c6d-9c6e-e79b9e2b81b9"}'+ + '}'; + + var fxResponse= '{"jtype":"AJB_reply",'+ + '"request":{"prefix":"afbs","api":"reset","status":"empty","info":"AFB_SESSION_CLOSE Not a Valid Access Token"}'+ + '}'; + + if (!scope.connected) res.status(401).send(fxResponse); + else { + res.send(okResponse); + scope.connected=false; + } + }); + + +} + +// Export Class +module.exports = NewApi;
\ No newline at end of file diff --git a/afb-client/app/Backend/RestApis/_all.js b/afb-client/app/Backend/RestApis/_all.js new file mode 100644 index 0000000..aacf19e --- /dev/null +++ b/afb-client/app/Backend/RestApis/_all.js @@ -0,0 +1,29 @@ +/* + * 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. + * + * 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. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +PostMockApi = require ('./PostMockApi'); +TokenMockApi = require ('./TokenMockApi'); + +// Include here every application APIs routes modules. +function Initialise (handle) { + + this.sample= new TokenMockApi (handle, config.APIBASE + 'token'); + this.sample= new PostMockApi (handle, config.APIBASE + 'post'); +} + +module.exports = Initialise; + |