Kliko/lib/services/request.tsx
2024-08-08 14:22:35 +02:00

71 lines
1.6 KiB
TypeScript

import axios from 'axios';
const API_URL = 'https://kliko.maartenvr98.nl/api/v1/';
const CONFIG = {
timeout: 30000,
};
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;
} );
}
}