instante-social/app/javascript/mastodon/api.js

35 lines
780 B
JavaScript
Raw Normal View History

import axios from 'axios';
import LinkHeader from 'http-link-header';
import ready from './ready';
export const getLinks = response => {
2016-11-20 18:39:18 +00:00
const value = response.headers.link;
if (!value) {
return { refs: [] };
}
return LinkHeader.parse(value);
};
let csrfHeader = {};
function setCSRFHeader() {
const csrfToken = document.querySelector('meta[name=csrf-token]').content;
csrfHeader['X-CSRF-Token'] = csrfToken;
}
ready(setCSRFHeader);
export default getState => axios.create({
headers: Object.assign(csrfHeader, getState ? {
'Authorization': `Bearer ${getState().getIn(['meta', 'access_token'], '')}`,
} : {}),
transformResponse: [function (data) {
2016-12-11 22:18:41 +00:00
try {
return JSON.parse(data);
} catch(Exception) {
return data;
}
}],
});