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,
    });
  }

  /**
   * 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,
    });
  }

  /**
   * 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,
    });
  }
}

