| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import config from '../config.js';
- // api methods for get, post and put operations
- // as well as `getToken`, `createUser` and `endSession`
- const api = {
- // GET data from API
- get: (route, payload) => {
- const requestHeaders = new Headers();
- let requestString = payload ? '?' : '';
- const myInit = {
- headers: requestHeaders,
- method: 'get'
- };
- requestString += payload ? Object.keys(payload).map(
- key => `${encodeURIComponent(key)}=${encodeURIComponent(payload[key])}`
- ).join('&') : '';
- requestHeaders.append('Accept', 'application/json');
- return fetch(config.api.url + route + requestString, myInit)
- .then(response => response.json())
- .catch((error) => {
- throw error;
- });
- },
- // POST data to API
- post: (route, payload, token) => {
- const requestHeaders = new Headers();
- const myInit = {
- headers: requestHeaders,
- method: 'post',
- body: JSON.stringify(payload)
- };
- requestHeaders.append('Content-Type', 'application/json');
- if (typeof token !== 'undefined') {
- requestHeaders.append('Authorization', `Bearer ${token}`);
- }
- return fetch(config.api.url + route, myInit)
- .then(response => response.json())
- .catch((error) => {
- throw error;
- });
- },
- // PUT data to API
- put: (route, payload, token) => {
- const requestHeaders = new Headers();
- const myInit = {
- headers: requestHeaders,
- method: 'put',
- body: JSON.stringify(payload)
- };
- requestHeaders.append('Content-Type', 'application/json');
- if (typeof token !== 'undefined') {
- requestHeaders.append('Authorization', `Bearer ${token}`);
- }
- return fetch(config.api.url + route, myInit)
- .catch((error) => {
- console.error(error); // eslint-disable-line
- });
- },
- // request token from API for current user
- getToken: () => {
- const requestHeaders = new Headers();
- const myInit = {
- headers: requestHeaders,
- method: 'post',
- body: `grant_type=password&username=${config.api.user}&password=${config.api.pwd}`
- };
- requestHeaders.append('Content-Type', 'application/x-www-form-urlencoded');
- return fetch('https://www.adaptivetoolbox.net/risikoatlas/token', myInit)
- .then(response => response.json())
- .then(json => json.access_token)
- .catch((error) => {
- throw error;
- });
- }
- };
- // create new user
- api.createUser = token => api.post('User/Create', {}, token);
- // end user session
- api.endSession = (userId, token) => api.put(`User/EndSession/${userId}`, {}, token);
- export default api;
|