summaryrefslogtreecommitdiff
path: root/src/core/api/odooApi.js
diff options
context:
space:
mode:
authortrisusilo48 <tri.susilo@altama.co.id>2025-02-26 10:47:58 +0700
committertrisusilo48 <tri.susilo@altama.co.id>2025-02-26 10:47:58 +0700
commit58601bc17b6f0516eee9c36aa36e39f1dea3ad77 (patch)
tree1223647d2e4c80603685fb97532b85649a8edc37 /src/core/api/odooApi.js
parentfdb488651e864cf30f09fe2337187241ef649177 (diff)
bitehsip
Diffstat (limited to 'src/core/api/odooApi.js')
-rw-r--r--src/core/api/odooApi.js36
1 files changed, 26 insertions, 10 deletions
diff --git a/src/core/api/odooApi.js b/src/core/api/odooApi.js
index 504d097a..2bff42e2 100644
--- a/src/core/api/odooApi.js
+++ b/src/core/api/odooApi.js
@@ -42,17 +42,30 @@ const odooApi = async (method, url, data = {}, headers = {}) => {
url: process.env.NEXT_PUBLIC_ODOO_API_HOST + url,
headers: { Authorization: token, ...headers },
};
- if (auth) axiosParameter.headers['Token'] = auth.token;
- if (method.toUpperCase() == 'POST')
- axiosParameter.headers['Content-Type'] =
- 'application/x-www-form-urlencoded';
- if (Object.keys(data).length > 0)
- axiosParameter.data = new URLSearchParams(
- Object.entries(data)
- ).toString();
+
+ if (auth) {
+ axiosParameter.headers['Token'] = auth.token;
+ }
+
+ // Tentukan format data berdasarkan metode dan data
+ if (Object.keys(data).length > 0) {
+ if (method.toUpperCase() === 'POST') {
+ // Gunakan URL-encoded untuk POST
+ axiosParameter.data = new URLSearchParams(
+ Object.entries(data)
+ ).toString();
+ axiosParameter.headers['Content-Type'] =
+ 'application/x-www-form-urlencoded';
+ } else {
+ // Gunakan JSON untuk GET/PUT atau metode lainnya
+ axiosParameter.data = data;
+ axiosParameter.headers['Content-Type'] = 'application/json';
+ }
+ }
let res = await axios(axiosParameter);
- if (res.data.status.code == 401) {
+
+ if (res.data.status.code === 401) {
if (connectionAttempt < maxConnectionAttempt) {
await renewToken();
return odooApi(method, url, data, headers);
@@ -62,10 +75,13 @@ const odooApi = async (method, url, data = {}, headers = {}) => {
return false;
}
}
+
return camelcaseObjectDeep(res.data.result) || [];
} catch (error) {
- // console.log(error);
+ console.error('API Error:', error);
+ throw error; // Opsional, lempar error agar bisa ditangkap di level atas
}
};
+
export default odooApi;