import axios from 'axios' import {apiUrl} from './constants'; import qs from "query-string"; import { openSuccessMessage, openErrorMessage } from 'ba-actions/message'; export function getHeaders() { let session = getSession(); return { //Authorization: `Token ${(session && session.accessToken) || null}` } } export function getSession() { if (window && window.localStorage) { return window.localStorage.getObject('session'); } return null; } export function saveSession(value) { if (window && window.localStorage) { return window.localStorage.saveObject('session', value); } return null; } export function apiReq(endPoint, data, method, headers, requestOptions = {}) { //console.log("apiReq - ANTES DE PROMESA") headers = { ...headers } if (method === 'get' || method === 'delete') { data = { ...requestOptions, params: data, paramsSerializer: function (params) { return qs.stringify(params, { arrayFormat: 'repeat' }) }, headers } } return axios[method](endPoint, data, { headers }) } export function generateUrl(path) { return apiUrl + path; } export function apiPost(endPoint, data, headers = {}) { return apiReq(generateUrl(endPoint), data, 'post', headers); } export function apiDelete(endPoint, data, headers = {}) { return apiReq(generateUrl(endPoint), data, 'delete', headers); } export function apiGet(endPoint, data, headers = {}, requestOptions) { return apiReq(generateUrl(endPoint), data, 'get', headers, requestOptions); } export function apiPut(endPoint, data, headers = {}) { return apiReq(generateUrl(endPoint), data, 'put', headers); } export function addMessageCurry(promise, dispatch, errorMsg = '', successMsg = '', showError = true) { return new Promise( (resolve, reject) => { promise .then(response => { if (successMsg) { console.log("addMessageCurry -SUCCESS MSG") dispatch( openSuccessMessage(successMsg) ) } resolve(response) }) .catch( err => { if(showError) { dispatch( openErrorMessage(errorMsg || ((err.response && err.response.data.message) || 'Server encountered an error')) ) } reject(err) } ) } ) }