73 lines
3.1 KiB
JavaScript
73 lines
3.1 KiB
JavaScript
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)
|
|
}
|
|
} |