vue_resource_interceptor.js.es6 621 Bytes
Newer Older
1 2
/* eslint-disable func-names, prefer-arrow-callback, no-unused-vars,
no-param-reassign, no-plusplus */
Filipa Lacerda's avatar
Filipa Lacerda committed
3 4 5 6 7
/* global Vue */

Vue.http.interceptors.push((request, next) => {
  Vue.activeResources = Vue.activeResources ? Vue.activeResources + 1 : 1;

8
  next((response) => {
Filipa Lacerda's avatar
Filipa Lacerda committed
9
    if (typeof response.data === 'string' && response.status !== 500) {
10 11 12 13
      response.data = JSON.parse(response.data);
    }

    Vue.activeResources--;
Filipa Lacerda's avatar
Filipa Lacerda committed
14 15
  });
});
16 17 18 19 20 21 22 23

Vue.http.interceptors.push((request, next) => {
  // needed in order to not break the tests.
  if ($.rails) {
    request.headers['X-CSRF-Token'] = $.rails.csrfToken();
  }
  next();
});