Finished functionally complete client registration workflow
This commit is contained in:
52
src/api/baseApi.js
Normal file
52
src/api/baseApi.js
Normal file
@@ -0,0 +1,52 @@
|
||||
import axios from "axios";
|
||||
|
||||
const API_ENDPOINT = process.env.REACT_APP_API_ENDPOINT;
|
||||
|
||||
// If testing, use localStorage polyfill, else use browser localStorage
|
||||
const localStorage = global.process && process.env.NODE_ENV === "test"
|
||||
? // eslint-disable-next-line import/no-extraneous-dependencies
|
||||
require("localStorage")
|
||||
: global.window.localStorage;
|
||||
|
||||
function headers() {
|
||||
const token = localStorage.getItem("token") || "";
|
||||
|
||||
return {
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json",
|
||||
Authorization: `Token: ${token}`
|
||||
};
|
||||
}
|
||||
|
||||
const apiInstance = axios.create({
|
||||
baseURL: API_ENDPOINT,
|
||||
timeout: 3000,
|
||||
});
|
||||
|
||||
export function get(url, params = {}) {
|
||||
return apiInstance
|
||||
.get(url, {params, headers: headers()})
|
||||
.then(response => response.data)
|
||||
.catch(error => Promise.reject(error));
|
||||
}
|
||||
|
||||
export function post(url, data) {
|
||||
return apiInstance
|
||||
.post(url, data, {headers: headers()})
|
||||
.then(response => response.data)
|
||||
.catch(error => Promise.reject(error));
|
||||
}
|
||||
|
||||
export function patch(url, data) {
|
||||
return apiInstance
|
||||
.patch(url, data, {headers: headers()})
|
||||
.then(response => response.data)
|
||||
.catch(error => Promise.reject(error));
|
||||
}
|
||||
|
||||
export function del(url) {
|
||||
return apiInstance
|
||||
.delete(url, {headers: headers()})
|
||||
.then(response => response.data)
|
||||
.catch(error => Promise.reject(error));
|
||||
}
|
Reference in New Issue
Block a user