diff options
author | Fulup Ar Foll <fulup@iot.bzh> | 2016-02-15 15:56:36 +0100 |
---|---|---|
committer | Fulup Ar Foll <fulup@iot.bzh> | 2016-02-15 15:56:36 +0100 |
commit | e6d12f74be543056a439259b61ba40a9d0adcf5c (patch) | |
tree | 06042b26cc2745b749ea1ff99370acaf58e12223 /afb-client/app | |
parent | fb1353dbc12ae889c17a6aa1572b917f57de0f9d (diff) |
Updated TokenRefresh and AppConfig
Diffstat (limited to 'afb-client/app')
-rw-r--r-- | afb-client/app/Backend/RestApis/TokenMockApi.js | 8 | ||||
-rw-r--r-- | afb-client/app/Frontend/app.js | 4 | ||||
-rw-r--r-- | afb-client/app/Frontend/etc/AppConfig.js (renamed from afb-client/app/Frontend/etc/ConfigApp.js) | 23 | ||||
-rw-r--r-- | afb-client/app/Frontend/pages/Home/HomeModule.js | 20 | ||||
-rw-r--r-- | afb-client/app/Frontend/widgets/FormInput/UploadFiles.js | 52 |
5 files changed, 58 insertions, 49 deletions
diff --git a/afb-client/app/Backend/RestApis/TokenMockApi.js b/afb-client/app/Backend/RestApis/TokenMockApi.js index 74b565a..9e6406e 100644 --- a/afb-client/app/Backend/RestApis/TokenMockApi.js +++ b/afb-client/app/Backend/RestApis/TokenMockApi.js @@ -37,7 +37,7 @@ function NewApi(handle, prefix) { scope.connected=false; // Simulate Client Context Session Creation - handle.app.post(prefix +'/create', function (req, res) { + handle.app.get(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" }'+ @@ -57,7 +57,7 @@ function NewApi(handle, prefix) { // Simulate Client Context Check - handle.app.post(prefix +'/check', function (req, res) { + handle.app.get(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"}'+ @@ -73,7 +73,7 @@ function NewApi(handle, prefix) { }); // Simulate Client Context Check - handle.app.post(prefix +'/refresh', function (req, res) { + handle.app.get(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"}'+ @@ -89,7 +89,7 @@ function NewApi(handle, prefix) { }); // Simulate Client Context Session Closing - handle.app.post(prefix +'/reset', function (req, res) { + handle.app.get(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"}'+ diff --git a/afb-client/app/Frontend/app.js b/afb-client/app/Frontend/app.js index 6772243..91a8a72 100644 --- a/afb-client/app/Frontend/app.js +++ b/afb-client/app/Frontend/app.js @@ -24,7 +24,7 @@ 'ui-notification', // Application Components - 'ConfigApp', + 'AppConfig', 'JQueryEmu', 'HomeModule', 'SampleModule', @@ -41,7 +41,7 @@ config.$inject = ['$urlRouterProvider', '$locationProvider']; - function config($urlProvider, $locationProvider, ConfigApp) { + function config($urlProvider, $locationProvider, AppConfig) { $urlProvider.otherwise('/home'); // https://docs.angularjs.org/error/$location/nobase diff --git a/afb-client/app/Frontend/etc/ConfigApp.js b/afb-client/app/Frontend/etc/AppConfig.js index a6a0cad..bd1aae0 100644 --- a/afb-client/app/Frontend/etc/ConfigApp.js +++ b/afb-client/app/Frontend/etc/AppConfig.js @@ -2,10 +2,10 @@ 'use strict'; // _all modules only reference dependencies - angular.module('ConfigApp', []) + angular.module('AppConfig', []) // Factory is a singleton and share its context within all instances. - .factory('ConfigApp', function (urlquery) { + .factory('AppConfig', function (urlquery) { var myConfig = { paths: { // Warning paths should end with / @@ -14,11 +14,7 @@ audio : 'images/audio/', appli : 'images/appli/' }, - - myapi: { // Warning paths should end with / - token : '/api/myplugin/xxxx' - }, - + session: { // Those data are updated by session service create : '/api/token/create', refresh : '/api/token/refresh', @@ -34,6 +30,19 @@ }; return myConfig; + }) + + // Factory is a singleton and share its context within all instances. + .factory('AppCall', function ($http, AppConfig) { + var myCalls = { + get : function(plugin, action, query, callback) { + if (!query.token) query.token = AppConfig.session.token; // add token to provided query + $http.get('/api/' + plugin + '/' + action , {params: query}).then (callback, callback); + } + + }; + return myCalls; }); + })();
\ No newline at end of file diff --git a/afb-client/app/Frontend/pages/Home/HomeModule.js b/afb-client/app/Frontend/pages/Home/HomeModule.js index 6a73bdf..fb03ac8 100644 --- a/afb-client/app/Frontend/pages/Home/HomeModule.js +++ b/afb-client/app/Frontend/pages/Home/HomeModule.js @@ -1,12 +1,12 @@ (function() { 'use strict'; -// WARNING: make sure than app/frontend/services/ConfigApp.js match your server +// WARNING: make sure than app/frontend/services/AppConfig.js match your server // list all rependencies within the page + controler if needed angular.module('HomeModule', ['SubmitButton', 'TokenRefresh']) - .controller('HomeController', function ($http, ConfigApp) { + .controller('HomeController', function ($http, AppConfig) { var scope = this; // I hate JavaScript scope.uuid ="none"; scope.token ="none"; @@ -22,10 +22,10 @@ angular.module('HomeModule', ['SubmitButton', 'TokenRefresh']) scope.request = data.request; scope.response = data.response; - // if token was refresh let's update ConfigApp - if (data.request.token) ConfigApp.session.token = data.request.token; - if (data.request.uuid) ConfigApp.session.uuid = data.request.uuid; - if (data.request.timeout) ConfigApp.session.timeout = data.request.timeout; + // if token was refresh let's update AppConfig + if (data.request.token) AppConfig.session.token = data.request.token; + if (data.request.uuid) AppConfig.session.uuid = data.request.uuid; + if (data.request.timeout) AppConfig.session.timeout = data.request.timeout; // Make sure we clean everything when Open/Close is called if (apiname === "APIcreate" || apiname === "APIreset") { @@ -56,7 +56,7 @@ angular.module('HomeModule', ['SubmitButton', 'TokenRefresh']) scope.OpenSession = function() { console.log ("OpenSession"); var postdata= {/* any json your application may need */}; - var handler = $http.post(ConfigApp.session.create + '?token='+ConfigApp.session.initial, postdata); + var handler = $http.post(AppConfig.session.create + '?token='+AppConfig.session.initial, postdata); handler.success(scope.ProcessResponse); handler.error(scope.ProcessError); @@ -65,7 +65,7 @@ angular.module('HomeModule', ['SubmitButton', 'TokenRefresh']) scope.CheckSession = function() { console.log ("CloseSession"); var postdata= {/* any json your application may need */}; - var handler = $http.post(ConfigApp.session.check + '?token='+ConfigApp.session.token, postdata); + var handler = $http.post(AppConfig.session.check + '?token='+AppConfig.session.token, postdata); handler.success(scope.ProcessResponse); handler.error(scope.ProcessError); @@ -74,7 +74,7 @@ angular.module('HomeModule', ['SubmitButton', 'TokenRefresh']) scope.RefreshSession = function() { console.log ("RefreshSession"); var postdata= {/* any json your application may need */}; - var handler = $http.post(ConfigApp.session.refresh + '?token='+ConfigApp.session.token, postdata); + var handler = $http.post(AppConfig.session.refresh + '?token='+AppConfig.session.token, postdata); handler.success(scope.ProcessResponse); handler.error(scope.ProcessError); @@ -83,7 +83,7 @@ angular.module('HomeModule', ['SubmitButton', 'TokenRefresh']) scope.ResetSession = function() { console.log ("ResetSession"); var postdata= {/* any json your application may need */}; - var handler = $http.post(ConfigApp.session.reset + '?token='+ConfigApp.session.token, postdata); + var handler = $http.post(AppConfig.session.reset + '?token='+AppConfig.session.token, postdata); handler.success(scope.ProcessResponse); handler.error(scope.ProcessError); diff --git a/afb-client/app/Frontend/widgets/FormInput/UploadFiles.js b/afb-client/app/Frontend/widgets/FormInput/UploadFiles.js index 8c0a4c2..a23809f 100644 --- a/afb-client/app/Frontend/widgets/FormInput/UploadFiles.js +++ b/afb-client/app/Frontend/widgets/FormInput/UploadFiles.js @@ -126,9 +126,9 @@ function LoadFileSvc (scope, elem, posturl, files, thumbnailCB) { xmlReq.send(xform); } -angular.module('UploadFiles',['ConfigApp', 'ModalNotification', 'RangeSlider']) +angular.module('UploadFiles',['AppConfig', 'ModalNotification', 'RangeSlider']) -.directive('uploadImage', function(ConfigApp, JQemu, Notification) { +.directive('uploadImage', function(AppConfig, JQemu, Notification) { function mymethods(scope, elem, attrs) { // get widget image handle from template @@ -152,7 +152,7 @@ angular.module('UploadFiles',['ConfigApp', 'ModalNotification', 'RangeSlider']) scope.imgElem[0].src = window.URL.createObjectURL(new Blob([upload.target.result], {type: "image"})); return true; // true activates post }; - var posturl = attrs.posturl + "?token=" + ConfigApp.session.token; + var posturl = attrs.posturl + "?token=" + AppConfig.session.token; new LoadFileSvc (scope, elem, posturl, files, readerCB); }; @@ -163,14 +163,14 @@ angular.module('UploadFiles',['ConfigApp', 'ModalNotification', 'RangeSlider']) scope.maxsize= attrs.maxsize || 100; // default max size 100KB scope.regexp = new RegExp (attrs.accept+ '.*','i'); - if (attrs.thumbnail) scope.thumbnail= ConfigApp.paths[scope.category] + attrs.thumbnail; - else scope.thumbnail=ConfigApp.paths[scope.category] + 'tux-bzh.png'; + if (attrs.thumbnail) scope.thumbnail= AppConfig.paths[scope.category] + attrs.thumbnail; + else scope.thumbnail=AppConfig.paths[scope.category] + 'tux-bzh.png'; - if (attrs.thumbnail) scope.isnotvalid= ConfigApp.paths[scope.category] + attrs.isnotvalid; - else scope.isnotvalid=ConfigApp.paths[scope.category] + 'isnotvalid.png'; + if (attrs.thumbnail) scope.isnotvalid= AppConfig.paths[scope.category] + attrs.isnotvalid; + else scope.isnotvalid=AppConfig.paths[scope.category] + 'isnotvalid.png'; - if (attrs.istoobig) scope.istoobig= ConfigApp.paths[scope.category] + attrs.istoobig; - else scope.istoobig=ConfigApp.paths[scope.category] + 'istoobig.png'; + if (attrs.istoobig) scope.istoobig= AppConfig.paths[scope.category] + attrs.istoobig; + else scope.istoobig=AppConfig.paths[scope.category] + 'istoobig.png'; scope.noslider = attrs.noslider || false; if (!attrs.posturl) throw new TypeError('file-upload %s posturl=/api/xxxx/xxxx required', scope.attrs); @@ -185,7 +185,7 @@ angular.module('UploadFiles',['ConfigApp', 'ModalNotification', 'RangeSlider']) }; }) -.directive('uploadAudio', function(ConfigApp, JQemu, Notification) { +.directive('uploadAudio', function(AppConfig, JQemu, Notification) { function mymethods(scope, elem, attrs) { // get widget image handle from template @@ -204,7 +204,7 @@ angular.module('UploadFiles',['ConfigApp', 'ModalNotification', 'RangeSlider']) // Upload is delegated to a shared function scope.UpLoadFile=function (files) { - var posturl = attrs.posturl + "?token=" + ConfigApp.session.token; + var posturl = attrs.posturl + "?token=" + AppConfig.session.token; new LoadFileSvc (scope, elem, posturl, files, false); }; @@ -215,14 +215,14 @@ angular.module('UploadFiles',['ConfigApp', 'ModalNotification', 'RangeSlider']) scope.maxsize= attrs.maxsize || 10000; // default max size 10MB scope.regexp = new RegExp (attrs.accept+ '.*','i'); - if (attrs.thumbnail) scope.thumbnail= ConfigApp.paths[scope.category] + attrs.thumbnail; - else scope.thumbnail=ConfigApp.paths[scope.category] + 'upload-music.png'; + if (attrs.thumbnail) scope.thumbnail= AppConfig.paths[scope.category] + attrs.thumbnail; + else scope.thumbnail=AppConfig.paths[scope.category] + 'upload-music.png'; - if (attrs.thumbnail) scope.isnotvalid= ConfigApp.paths[scope.category] + attrs.isnotvalid; - else scope.isnotvalid=ConfigApp.paths[scope.category] + 'isnotvalid.png'; + if (attrs.thumbnail) scope.isnotvalid= AppConfig.paths[scope.category] + attrs.isnotvalid; + else scope.isnotvalid=AppConfig.paths[scope.category] + 'isnotvalid.png'; - if (attrs.istoobig) scope.istoobig= ConfigApp.paths[scope.category] + attrs.istoobig; - else scope.istoobig=ConfigApp.paths[scope.category] + 'istoobig.png'; + if (attrs.istoobig) scope.istoobig= AppConfig.paths[scope.category] + attrs.istoobig; + else scope.istoobig=AppConfig.paths[scope.category] + 'istoobig.png'; scope.noslider = attrs.noslider || false; if (!attrs.posturl) throw new TypeError('file-upload %s posturl=/api/xxxx/xxxx required', scope.attrs); @@ -238,7 +238,7 @@ angular.module('UploadFiles',['ConfigApp', 'ModalNotification', 'RangeSlider']) }) -.directive('uploadAppli', function(ConfigApp, JQemu, Notification) { +.directive('uploadAppli', function(AppConfig, JQemu, Notification) { function mymethods(scope, elem, attrs) { // get widget image handle from template @@ -265,14 +265,14 @@ angular.module('UploadFiles',['ConfigApp', 'ModalNotification', 'RangeSlider']) // Check is we have a thumbnail within loaded Zipfile if (!thumbnail) { console.log ("This is not a valid Application Framework APP"); - scope.thumbnail=ConfigApp.paths[scope.category] + 'isnotvalid.png'; + scope.thumbnail=AppConfig.paths[scope.category] + 'isnotvalid.png'; scope.$apply('thumbnail'); // we short-circuit Angular resync Image return false; // do not post zip on binder } scope.imgElem[0].src = window.URL.createObjectURL(new Blob([thumbnail.asArrayBuffer()], {type: "image"})); return true; // true activates post }; - var posturl = attrs.posturl + "?token=" + ConfigApp.session.token; + var posturl = attrs.posturl + "?token=" + AppConfig.session.token; new LoadFileSvc (scope, elem, posturl, files, readerCB); }; @@ -283,14 +283,14 @@ angular.module('UploadFiles',['ConfigApp', 'ModalNotification', 'RangeSlider']) scope.maxsize= attrs.maxsize || 100000; // default max size 100MB scope.regexp = new RegExp (attrs.accept+ '.*','i'); - if (attrs.thumbnail) scope.thumbnail= ConfigApp.paths[scope.category] + attrs.thumbnail; - else scope.thumbnail=ConfigApp.paths[scope.category] + 'upload-appli.png'; + if (attrs.thumbnail) scope.thumbnail= AppConfig.paths[scope.category] + attrs.thumbnail; + else scope.thumbnail=AppConfig.paths[scope.category] + 'upload-appli.png'; - if (attrs.thumbnail) scope.isnotvalid= ConfigApp.paths[scope.category] + attrs.isnotvalid; - else scope.isnotvalid=ConfigApp.paths[scope.category] + 'isnotvalid.png'; + if (attrs.thumbnail) scope.isnotvalid= AppConfig.paths[scope.category] + attrs.isnotvalid; + else scope.isnotvalid=AppConfig.paths[scope.category] + 'isnotvalid.png'; - if (attrs.istoobig) scope.istoobig= ConfigApp.paths[scope.category] + attrs.istoobig; - else scope.istoobig=ConfigApp.paths[scope.category] + 'istoobig.png'; + if (attrs.istoobig) scope.istoobig= AppConfig.paths[scope.category] + attrs.istoobig; + else scope.istoobig=AppConfig.paths[scope.category] + 'istoobig.png'; scope.noslider = attrs.noslider || false; if (!attrs.posturl) throw new TypeError('file-upload %s posturl=/api/xxxx/xxxx required', scope.attrs); |