summaryrefslogtreecommitdiff
path: root/src/core/api/odooApi.js
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-07-29 09:46:05 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-07-29 09:46:05 +0700
commit077467cf53b46d8049df8b812577cd1a03011eba (patch)
tree0dc641a9acb1237a3caca3f7f8a157a3e938c0b8 /src/core/api/odooApi.js
parent0d28dc8ff5fb8c5399e356ed6ecae4fce2019ca6 (diff)
parentdc31efb2fec4c7b79917324d922ae820c4b5bb50 (diff)
<hafid> merging new release
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..ab3dedb0 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;