import EP from './endpoints.js'; export default async function API(endpoint, method, headers, params, body, onSuccess, onError) { try { if(method == "post") { var Head = { 'Accept': 'application/json', 'Content-Type': 'application/json', 'x-p97-tenantid': '8ba3cd89-74be-4a7a-91a5-5eb59a2040b8', 'x-p97-apikey': EP.post_pay_api_key } let url = endpoint.includes(":") ? endpoint : EP[endpoint] if(headers.token != undefined) { Head = {...Head, 'Authorization': `Bearer ${headers.token}`} } if(headers.language != undefined) { Head = {...Head, 'Accept-Language': headers.language} } console.log(url, Head) let response = await fetch(url, { method: method, body: body?._parts ? body : JSON.stringify(body), headers: Head, params: params }); let json = await response.json(); onSuccess(json) } else if(method == "get") { var Head = { 'Accept': 'application/json', 'Content-Type': 'application/json', 'x-p97-tenantid': '8ba3cd89-74be-4a7a-91a5-5eb59a2040b8', 'x-p97-apikey': EP.post_pay_api_key, } let paramsItem = Object.entries(params).map(([key, value]) => `${key}=${value}`) let url = paramsItem.length > 1 ? `${EP[endpoint]}?${paramsItem.join('&').toString()}` : `${EP[endpoint]}/${Object.entries(params).map(([key, value]) => value).join('').toString()}` if(headers.token != undefined) { Head = {...Head, 'Authorization': `Bearer ${headers.token}`} } if(headers.language != undefined) { Head = {...Head, 'Accept-Language': headers.language} } console.log(url, Head) let response = await fetch(endpoint.includes(":") ? endpoint : url, { method: method, headers: Head }); let json = await response.json(); onSuccess(json) } else if(method == "delete") { let url = !params.noID ? (EP[endpoint] + "?" + params) : EP[endpoint] + "/" + params.value console.warn('URL delete', url); if(headers.Authorization){ let response = await fetch(endpoint.includes(":") ? endpoint : url, { method: method, headers: new Headers({ 'Accept': 'application/json', 'Authorization': `${headers.Authorization || ''}` }) }); let json = await response.json(); onSuccess(json) } else { let response = await fetch(endpoint.includes(":") ? endpoint : url); console.warn('Response', JSON.stringify(res)) let json = await response.json(); onSuccess(json) } } } catch (error) { onError(error) } }