Clean up to prepare new version of API
[src/app-framework-demo.git] / afm-client / app / Frontend / etc / AppConfig.js
1 (function () {
2     'use strict';
3
4     // _all modules only reference dependencies
5     angular.module('AppConfig', [])
6     
7             // Factory is a singleton and share its context within all instances.
8             .factory('AppConfig', function (urlquery) {
9
10                 // console.log ("URL="+ $location.url() + " Query=" + location.href+ " window=" + document.referrer);
11
12                 var myConfig = {
13                     
14                     paths: { // Warning paths should end with /
15                         image : 'images/',
16                         icons : '/icons/',
17                         avatar: 'images/avatars/',
18                         audio : 'images/audio/',
19                         appli : 'images/appli/'
20                     },
21                                         
22                     session: { // Those data are updated by session service
23                        initial : urlquery.token || '123456789',  // typical dev initial token
24                        timeout : 3600,         // timeout is updated client sessin context creation
25                        pingrate: 15,           // Ping rate to check if server is still alive
26                        uuid    : '',           // uuid map with cookie or long term session access key
27                        token   : ''            // will be returned from authentication    
28                     }
29                 };
30
31                 return myConfig;
32             })
33
34            // Factory is a singleton and share its context within all instances.
35             .factory('AppCall', function ($http, AppConfig, $log) {
36                 
37                 var myCalls = {
38                     get : function(plugin, action, query, cbresponse, cberror) {                                                
39                         
40                         var onerror = function(response) {
41                             if (cberror) cberror(response.data, response.status, response.config);
42                             else cbresponse(response.data, response.status, response.config);
43                         };
44                         
45                         var onsuccess =function(response) {
46                             if (!response.data || !response.data.request) {
47                                 onerror (response);
48                                 return;
49                             }                            
50                         
51                             var request=response.data.request;
52                             
53                             // if token was updated keep it within application cache
54                             if (request.token) AppConfig.session.token = request.token;
55                             if (request.uuid)  AppConfig.session.uuid  = request.uuid;
56                             if (request.timeout) AppConfig.session.timeout = request.timeout;
57                         
58                             cbresponse(response.data, response.status, response.config);
59                         };
60                         
61                         
62                         if (!query.token) query.token = AppConfig.session.token; // add token to provided query
63                         if (!query.reqid) query.reqid = action; // use action as default requestID
64                         var handle= $http.get('/api/' + plugin + '/' + action , {params: query}).then(onsuccess, onerror);
65                         
66                     }
67                 };
68                 return myCalls;
69             });
70 })();