summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/vue_shared/vue_resource_interceptor.js
diff options
context:
space:
mode:
authorFilipa Lacerda <filipa@gitlab.com>2017-07-12 14:47:09 +0000
committerPhil Hughes <me@iamphill.com>2017-07-12 14:47:09 +0000
commitaaa78199c2408a05d81aa4ee3058e81bb732da16 (patch)
tree97146599b47da2f86a1701c6012f60103bad9352 /app/assets/javascripts/vue_shared/vue_resource_interceptor.js
parentfd692d10663e5d3c7dc0de9221d6231b7fbcc464 (diff)
downloadgitlab-ce-aaa78199c2408a05d81aa4ee3058e81bb732da16.tar.gz
Update vue-resource
Diffstat (limited to 'app/assets/javascripts/vue_shared/vue_resource_interceptor.js')
-rw-r--r--app/assets/javascripts/vue_shared/vue_resource_interceptor.js19
1 files changed, 15 insertions, 4 deletions
diff --git a/app/assets/javascripts/vue_shared/vue_resource_interceptor.js b/app/assets/javascripts/vue_shared/vue_resource_interceptor.js
index 740930dce5b..7f8e514fda1 100644
--- a/app/assets/javascripts/vue_shared/vue_resource_interceptor.js
+++ b/app/assets/javascripts/vue_shared/vue_resource_interceptor.js
@@ -14,11 +14,22 @@ Vue.http.interceptors.push((request, next) => {
});
});
-// Inject CSRF token so we don't break any tests.
+// Inject CSRF token and parse headers.
+// New Vue Resource version uses Headers, we are expecting a plain object to render pagination
+// and polling.
Vue.http.interceptors.push((request, next) => {
if ($.rails) {
- // eslint-disable-next-line no-param-reassign
- request.headers['X-CSRF-Token'] = $.rails.csrfToken();
+ request.headers.set('X-CSRF-Token', $.rails.csrfToken());
}
- next();
+
+ next((response) => {
+ // Headers object has a `forEach` property that iterates through all values.
+ const headers = {};
+
+ response.headers.forEach((value, key) => {
+ headers[key] = value;
+ });
+ // eslint-disable-next-line no-param-reassign
+ response.headers = headers;
+ });
});