X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=afm-client%2Fapp%2FFrontend%2Fetc%2FAppConfig.js;h=d24a626c011e1f009790bde8d86541167dcd5526;hb=96190f9cd583d9182c692c88d3342109bad81157;hp=16a2c8733750bdccba5b886e9cfd0614ffe5f8d1;hpb=3ebdce373e134b70b129154d8033c1c628847a6c;p=src%2Fapp-framework-demo.git diff --git a/afm-client/app/Frontend/etc/AppConfig.js b/afm-client/app/Frontend/etc/AppConfig.js index 16a2c87..d24a626 100644 --- a/afm-client/app/Frontend/etc/AppConfig.js +++ b/afm-client/app/Frontend/etc/AppConfig.js @@ -5,7 +5,7 @@ angular.module('AppConfig', []) // Factory is a singleton and share its context within all instances. - .factory('AppConfig', function () { + .factory('AppConfig', function (urlquery) { // console.log ("URL="+ $location.url() + " Query=" + location.href+ " window=" + document.referrer); @@ -13,24 +13,16 @@ paths: { // Warning paths should end with / image : 'images/', - icons : 'images/icons/', + icons : '/icons/', avatar: 'images/avatars/', - audio : 'images/audio/' + 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', - check : '/api/token/check', - reset : '/api/token/reset', - ping : '/api/token/check', - initial : '123456789', // typical dev initial token + initial : urlquery.token || '123456789', // typical dev initial token timeout : 3600, // timeout is updated client sessin context creation - pingrate: 60, // Ping rate to check if server is still alive + pingrate: 15, // Ping rate to check if server is still alive uuid : '', // uuid map with cookie or long term session access key token : '' // will be returned from authentication } @@ -39,17 +31,40 @@ return myConfig; }) - // Factory is a singleton and share its context within all instances. - .factory('AppCall', function ($http, AppConfig) { + // Factory is a singleton and share its context within all instances. + .factory('AppCall', function ($http, AppConfig, $log) { + var myCalls = { - get : function(plugin, action, query, callback) { - query["token"] = AppConfig.session.token; // add token to provided query - $http.get('/api/' + plugin + '/' + action , {params: query}).then (callback, callback); + get : function(plugin, action, query, cbresponse, cberror) { + + var onerror = function(response) { + if (cberror) cberror(response.data, response.status, response.config); + else cbresponse(response.data, response.status, response.config); + }; + + var onsuccess =function(response) { + if (!response.data || !response.data.request) { + onerror (response); + return; + } + + var request=response.data.request; + + // if token was updated keep it within application cache + if (request.token) AppConfig.session.token = request.token; + if (request.uuid) AppConfig.session.uuid = request.uuid; + if (request.timeout) AppConfig.session.timeout = request.timeout; + + cbresponse(response.data, response.status, response.config); + }; + + + if (!query.token) query.token = AppConfig.session.token; // add token to provided query + if (!query.reqid) query.reqid = action; // use action as default requestID + var handle= $http.get('/api/' + plugin + '/' + action , {params: query}).then(onsuccess, onerror); + } - }; return myCalls; }); - - -})(); \ No newline at end of file +})();