71 lines
1.3 KiB
TypeScript
71 lines
1.3 KiB
TypeScript
import axios from 'axios';
|
|
|
|
const API_URL = 'https://kliko.maartenvr98.nl/api/v1/';
|
|
const CONFIG = {
|
|
timeout: 3000,
|
|
};
|
|
|
|
export class Request {
|
|
/**
|
|
* Send GET request to API
|
|
*
|
|
* @param url
|
|
* @param headers
|
|
* @returns {Promise<AxiosResponse<any>>}
|
|
*/
|
|
static get(url: string, headers = {}) {
|
|
return axios
|
|
.get(API_URL + url, {
|
|
...CONFIG,
|
|
...headers,
|
|
})
|
|
.then(response => response.data)
|
|
.catch(error => {
|
|
// Handle error
|
|
throw error;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Send POST request to API
|
|
*
|
|
* @param url
|
|
* @param body
|
|
* @param headers
|
|
* @returns {Promise<AxiosResponse<any>>}
|
|
*/
|
|
static post(url: string, body = {}, headers = {}) {
|
|
return axios
|
|
.post(API_URL + url, body, {
|
|
...CONFIG,
|
|
...headers,
|
|
})
|
|
.then(response => response.data)
|
|
.catch(error => {
|
|
// Handle error
|
|
throw error;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Send PUT request to API
|
|
*
|
|
* @param url
|
|
* @param body
|
|
* @param headers
|
|
* @returns {Promise<AxiosResponse<any>>}
|
|
*/
|
|
static put(url: string, body = {}, headers = {}) {
|
|
return axios
|
|
.put(API_URL + url, body, {
|
|
...CONFIG,
|
|
...headers,
|
|
})
|
|
.then(response => response.data)
|
|
.catch(error => {
|
|
// Handle error
|
|
throw error;
|
|
});
|
|
}
|
|
}
|
|
|