unioil-loyalty-rn-app/app/components/api/postpayapi.js

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