blob: bd4cba3538edc96077f025534d9dc90663280579 [file] [log] [blame]
Matteo Scandolof6acdbe2016-12-13 10:29:37 -08001/// <reference path="../typings/index.d.ts" />
2
3export function interceptorConfig($httpProvider: angular.IHttpProvider, $resourceProvider: angular.resource.IResourceServiceProvider) {
4 $httpProvider.interceptors.push('UserStatusInterceptor');
5 $httpProvider.interceptors.push('CredentialsInterceptor');
6 $resourceProvider.defaults.stripTrailingSlashes = false;
7}
8
9export function userStatusInterceptor($state: angular.ui.IStateService) {
10
11 const checkLogin = (res) => {
12 if (res.status === 403) {
13 $state.go('login');
14 }
15 else if (res.data.status === 403) {
16 $state.go('login');
17 }
18 return res;
19 };
20
21 return {
22 response: checkLogin,
23 responseError: checkLogin
24 };
25}
26
27export function CredentialsInterceptor($cookies: angular.cookies.ICookiesService) {
28 return {
29 request: (req) => {
30 if (!$cookies.get('xoscsrftoken') || !$cookies.get('xossessionid')) {
31 return req;
32 }
33 req.headers['X-CSRFToken'] = $cookies.get('xoscsrftoken');
34 req.headers['x-csrftoken'] = $cookies.get('xoscsrftoken');
35 req.headers['x-sessionid'] = $cookies.get('xossessionid');
36 return req;
37 }
38 };
39}