FindMyRecipe / src / services / Api.js
Api.js
Raw
import axios from 'axios'

const port = "8080"
//const baseURL = env.BaseURL || `http://localhost:{port}/api/`
const axiosAPI = axios.create({
  withCredentials: true,
  baseURL : `http://localhost:8080/api/` // it's not recommended to have this info here.
});

// implement a method to execute all the request from here.
const apiRequest = (method, url, request, additionalHeaders = {}) => {
  let headers = {
    authorization: "",
    ...additionalHeaders 
  };
  console.log("API: ", url, JSON.stringify(request))
    //using the axios instance to perform the request that received from each http method
    return axiosAPI({
        method,
        url,
        data: request,
        headers
      }).then(res => {
        return Promise.resolve(res.data);
      })
      .catch(err => {
        return Promise.reject(err);
      });
};

// function to execute the http get request
const get = (url, request, additionalHeaders = {}) => apiRequest("get",url,request);

// function to execute the http delete request
const deleteRequest = (url, request) =>  apiRequest("delete", url, request);

// function to execute the http post request
const post = (url, request, additionalHeaders = {}) => apiRequest("post", url, request, additionalHeaders);

// function to execute the http put request
const put = (url, request) => apiRequest("put", url, request);

// function to execute the http path request
const patch = (url, request) =>  apiRequest("patch", url, request);

// expose your method to other services or actions
const API ={
    get,
    delete: deleteRequest,
    post,
    put,
    patch
};
export default API;