refactor(config): move httpInterceptor from website/app.js to habitrpg-shared/config.js.

This commit is contained in:
Tyler Renelle
2015-01-16 16:48:53 -07:00
parent 9a087d2d90
commit 90c7142da5
2 changed files with 3 additions and 50 deletions
+2 -50
View File
@@ -14,8 +14,8 @@ window.habitrpg = angular.module('habitrpg',
.constant("MOBILE_APP", false)
//.constant("STORAGE_GROUPS_ID", "") // if we decide to take groups offline
.config(['$stateProvider', '$urlRouterProvider', '$httpProvider', '$provide', 'STORAGE_SETTINGS_ID',
function($stateProvider, $urlRouterProvider, $httpProvider, $provide, STORAGE_SETTINGS_ID) {
.config(['$stateProvider', '$urlRouterProvider', '$httpProvider', 'STORAGE_SETTINGS_ID',
function($stateProvider, $urlRouterProvider, $httpProvider, STORAGE_SETTINGS_ID) {
$urlRouterProvider
// Setup default selected tabs
@@ -222,52 +222,4 @@ window.habitrpg = angular.module('habitrpg',
$httpProvider.defaults.headers.common['x-api-user'] = settings.auth.apiId;
$httpProvider.defaults.headers.common['x-api-key'] = settings.auth.apiToken;
}
// Handle errors
$provide.factory('myHttpInterceptor', ['$rootScope','$q',function($rootScope,$q) {
return {
response: function(response) {
return response;
},
responseError: function(response) {
// Offline
if (response.status == 0 ||
// don't know why we're getting 404 here, should be 0
(response.status == 404 && _.isEmpty(response.data))) {
$rootScope.$broadcast('responseText', window.env.t('serverUnreach'));
// Needs refresh
} else if (response.needRefresh) {
$rootScope.$broadcast('responseError', "The site has been updated and the page needs to refresh. The last action has not been recorded, please refresh and try again.");
} else if (response.data.code && response.data.code === 'ACCOUNT_SUSPENDED') {
confirm(response.data.err);
localStorage.clear();
window.location.href = '/logout';
// 400 range?
} else if (response.status < 500) {
$rootScope.$broadcast('responseText', response.data.err || response.data);
// Need to reject the prompse so the error is handled correctly
if (response.status === 401) {
return $q.reject(response);
}
// Error
} else {
var error = '<strong>Please reload</strong>, ' +
'"'+window.env.t('error')+' '+(response.data.err || response.data || 'something went wrong')+'" ' +
window.env.t('seeConsole');
$rootScope.$broadcast('responseError', error);
console.error(response);
}
return response;
// this completely halts the chain, meaning we can't queue offline actions
//if (canRecover(response)) return responseOrNewPromise
//return $q.reject(response);
}
};
}]);
$httpProvider.interceptors.push('myHttpInterceptor');
}])
+1
View File
@@ -37,6 +37,7 @@
"js/env.js",
"js/app.js",
"bower_components/habitrpg-shared/script/config.js",
"js/services/sharedServices.js",
"js/services/authServices.js",
"js/services/notificationServices.js",