Move axios wrapper methods to new file backendApi

This commit is contained in:
Felix Hamme 2019-05-11 20:24:25 +02:00
parent 6bea32b08a
commit a40ecd56e9
3 changed files with 46 additions and 50 deletions

View File

@ -1,8 +1,4 @@
import {
createStore,
applyMiddleware,
combineReducers
} from 'redux';
import {applyMiddleware, combineReducers, createStore} from 'redux';
import {composeWithDevTools} from 'redux-devtools-extension';
import thunkMiddleware from 'redux-thunk';
@ -11,49 +7,8 @@ import {errorMessages} from './constants';
import {actionTypesUserinfo, defaultStateUserinfo} from './redux/userInfo';
import {actionTypesTournamentinfo, defaultStateTournamentinfo} from './redux/tournamentInfo';
import {actionTypesTournamentlist, defaultStateTournamentlist} from './redux/tournamentList';
import {deleteRequest, getRequest, patchRequest, postRequest} from './redux/backendApi';
import getConfig from 'next/config';
const {publicRuntimeConfig} = getConfig();
const apiUrl = publicRuntimeConfig.api_url;
const axios = require('axios');
export function postRequest(state, url, data) {
return axios.post(apiUrl + url, data, {
headers: generateHeaders(state)
});
}
export function getRequest(state, url) {
return axios.get(apiUrl + url, {
headers: generateHeaders(state)
});
}
export function deleteRequest(state, url) {
return axios.delete(apiUrl + url, {
headers: generateHeaders(state)
});
}
export function patchRequest(state, url, data) {
return axios.patch(apiUrl + url, data, {
headers: generateHeaders(state)
});
}
function generateHeaders(state) {
if (state.userinfo.isSignedIn) {
return {
'access-token': state.userinfo.accesstoken,
'client': state.userinfo.client,
'uid': state.userinfo.uid
};
} else {
return {};
}
}
function storeOptionalToken(response) {
if (checkForAuthenticationHeaders(response)) {

42
js/redux/backendApi.js Normal file
View File

@ -0,0 +1,42 @@
import getConfig from 'next/config';
const {publicRuntimeConfig} = getConfig();
const apiUrl = publicRuntimeConfig.api_url;
const axios = require('axios');
export function postRequest(state, url, data) {
return axios.post(apiUrl + url, data, {
headers: generateHeaders(state)
});
}
export function getRequest(state, url) {
return axios.get(apiUrl + url, {
headers: generateHeaders(state)
});
}
export function deleteRequest(state, url) {
return axios.delete(apiUrl + url, {
headers: generateHeaders(state)
});
}
export function patchRequest(state, url, data) {
return axios.patch(apiUrl + url, data, {
headers: generateHeaders(state)
});
}
function generateHeaders(state) {
if (state.userinfo.isSignedIn) {
return {
'access-token': state.userinfo.accesstoken,
'client': state.userinfo.client,
'uid': state.userinfo.uid
};
} else {
return {};
}
}

View File

@ -24,9 +24,8 @@ import {ErrorPageComponent} from '../js/components/ErrorComponents';
import {Footer} from '../js/components/Footer';
import {TurniereNavigation} from '../js/components/Navigation';
import {BigImage} from '../js/components/BigImage';
import {
getRequest, getState
} from '../js/api';
import {getState} from '../js/api';
import {getRequest} from '../js/redux/backendApi';
import 'bootstrap/dist/css/bootstrap.min.css';