blob: cba3c6ecebc820f73a638b4741be01c7d3d71357 [file] [log] [blame]
Iftekharul Islam99d199f2017-03-24 15:28:25 -05001/**
2 * api Interceptor
3 *
4 * @module app/common/services/apiInterceptor
5 * @exports apiInterceptor
6 * @name apiInterceptor
7
8 * @version 0.0.1
9 */
10
11window.angular && (function (angular) {
12 'use strict';
13
14 angular
15 .module('app.common.services')
16 .service('apiInterceptor', ['$q', '$rootScope', 'dataService', function($q, $rootScope, dataService){
17 return {
18 'request': function(config){
Michael Davisdfad5d52017-07-20 14:53:46 -050019<<<<<<< HEAD
Iftekharul Islam99d199f2017-03-24 15:28:25 -050020 dataService.loading = true;
Iftekharul Islam1221c0c2017-07-27 10:23:49 -050021 config.timeout = 20000;
Michael Davisdfad5d52017-07-20 14:53:46 -050022=======
23 dataService.server_unreachable = false;
24 dataService.loading = true;
25>>>>>>> 4c1a3dd... Major update to code structure
Iftekharul Islam99d199f2017-03-24 15:28:25 -050026 return config;
27 },
28 'response': function(response){
29 dataService.loading = false;
Michael Davisdfad5d52017-07-20 14:53:46 -050030<<<<<<< HEAD
Iftekharul Islam99d199f2017-03-24 15:28:25 -050031
Iftekharul Islamcd789502017-04-19 14:37:55 -050032 //not interested in template requests
33 if(!/^https?\:/i.test(response.config.url)){
34 return response;
35 }
36
37 dataService.last_updated = new Date();
Iftekharul Islamc1535922017-06-19 12:49:04 -050038 if(!response){
Iftekharul Islam99d199f2017-03-24 15:28:25 -050039 dataService.server_unreachable = true;
Iftekharul Islamcd789502017-04-19 14:37:55 -050040 }else{
41 dataService.server_unreachable = false;
Michael Davisdfad5d52017-07-20 14:53:46 -050042=======
43 dataService.last_updated = new Date();
44
45 if(response == null){
46 dataService.server_unreachable = true;
47>>>>>>> 4c1a3dd... Major update to code structure
Iftekharul Islam99d199f2017-03-24 15:28:25 -050048 }
49
50 if(response && response.status == 'error' &&
51 dataService.path != '/login'){
52 $rootScope.$emit('timedout-user', {});
53 }
54
55 return response;
56 },
57 'responseError': function(rejection){
58 dataService.server_unreachable = true;
59 dataService.loading = false;
Michael Davisdfad5d52017-07-20 14:53:46 -050060<<<<<<< HEAD
Iftekharul Islamf3f7a5f2017-03-27 13:53:24 -050061 if(dataService.path != '/login'){
62 $rootScope.$emit('timedout-user', {});
63 }
Michael Davisdfad5d52017-07-20 14:53:46 -050064=======
65>>>>>>> 4c1a3dd... Major update to code structure
Iftekharul Islam99d199f2017-03-24 15:28:25 -050066 return $q.reject(rejection);
67 }
68 };
69 }]);
70
71})(window.angular);