bug fixes

This commit is contained in:
nnajah1 2025-04-28 16:54:26 +08:00
parent 87e66e730b
commit f3e987a0a7
8 changed files with 106 additions and 92 deletions

Binary file not shown.

View File

@ -38,14 +38,14 @@
// headers: Head,
// params: params
// });
// let json = await response.json();
// if(json.message === "Unauthenticated.") {
// let tokens = await DB.get("token");
// if(!tokens.length) return;
// store.dispatch({
// type: TYPE_OPEN_ALERT,
// payload: {
@ -84,7 +84,7 @@
// 'card_number': `${headers.card_number}` || ''
// })
// });
// let json = await response.json();
// if(json.message === "Unauthenticated.") {
@ -138,9 +138,9 @@
// if(json.message === "Unauthenticated.") {
// let tokens = await DB .get("token");
// if(!tokens.length) return;
// store.dispatch({
// type: TYPE_OPEN_ALERT,
// payload: {
@ -175,7 +175,7 @@
// let tokens = await DB.get("token");
// if(!tokens.length) return;
// store.dispatch({
// type: TYPE_OPEN_ALERT,
// payload: {
@ -219,7 +219,7 @@
// let tokens = await DB.get("token");
// if(!tokens.length) return;
// store.dispatch({
// type: TYPE_OPEN_ALERT,
// payload: {
@ -259,14 +259,14 @@
// headers: Head,
// params: params
// })
// let json = await response.json();
// if(json.message === "Unauthenticated.") {
// let tokens = await DB.get("token");
// if(!tokens.length) return;
// store.dispatch({
// type: TYPE_OPEN_ALERT,
// payload: {
@ -318,9 +318,9 @@ const defaultHeaders = {
export default async function API(endpoint, method, headers, params, body, onSuccess, onError, subject, action) {
const navigationRef = getNavigationRef();
const headerToUse = () => {
switch(method) {
switch (method) {
case "post":
return {
'Accept': headers.Accept ? headers.Accept : 'application/json',
@ -329,7 +329,7 @@ export default async function API(endpoint, method, headers, params, body, onSuc
'card_number': headers.card_number || ''
};
case "get":
if(headers.Authorization) {
if (headers.Authorization) {
return {
'Accept': 'application/json',
'Authorization': `${headers.Authorization || ''}`,
@ -343,7 +343,7 @@ export default async function API(endpoint, method, headers, params, body, onSuc
return {};
case "delete":
if(headers.Authorization) {
if (headers.Authorization) {
return {
'Accept': 'application/json',
'Authorization': `${headers.Authorization || ''}`,
@ -367,7 +367,7 @@ export default async function API(endpoint, method, headers, params, body, onSuc
}
}
switch(method) {
switch (method) {
case "post": {
axios({
method: method,
@ -379,16 +379,18 @@ export default async function API(endpoint, method, headers, params, body, onSuc
callLogs(response.data, "success", "frontend", subject, action)
onSuccess(response.data)
}).catch(async (err) => {
const errorToResponse = {
status: err?.response?.data?.status || err?.response?.status,
message: err?.response?.data?.message || err?.response?.message || "Something went wrong, please try again."
}
const hasResponse = err?.response && err?.response?.data;
if(errorToResponse.status === 401) {
const errorToResponse = {
status: hasResponse ? err.response.data.status || err.response.status : null,
message: hasResponse ? err.response.data.message || err.response.message : "Something went wrong, please try again."
};
if (errorToResponse.status === 401) {
let tokens = await DB.get("token");
if(!tokens.length) return;
if (!tokens.length) return;
store.dispatch({
type: TYPE_OPEN_ALERT,
payload: {
@ -402,18 +404,18 @@ export default async function API(endpoint, method, headers, params, body, onSuc
await DB.reset();
navigationRef.reset({
index: 0,
routes: [{name: 'Login'}],
routes: [{ name: 'Login' }],
});
}
}
})
callLogs(err?.response, "error", "frontend", subject, action)
onError(err?.response)
callLogs(err?.response || err, "error", "frontend", subject, action);
onError(err?.response); // Always use errorToResponse
return;
}
callLogs(err?.response, "error", "frontend", subject, action);
onError(errorToResponse)
callLogs(err?.response || err, "error", "frontend", subject, action);
onError(errorToResponse);
})
return;
}
@ -429,16 +431,19 @@ export default async function API(endpoint, method, headers, params, body, onSuc
callLogs(response.data, "success", "frontend", subject, action)
onSuccess(response.data)
}).catch(async (err) => {
const errorToResponse = {
status: err?.response?.data?.status || err?.response?.status,
message: err?.response?.data?.message || err?.response?.message || "Something went wrong, please try again."
}
const hasResponse = err?.response && err?.response?.data;
if(errorToResponse.status === 401) {
const errorToResponse = {
status: hasResponse ? err.response.data.status || err.response.status : null,
message: hasResponse ? err.response.data.message || err.response.message : "Something went wrong, please try again."
};
if (errorToResponse.status === 401) {
let tokens = await DB.get("token");
if(!tokens.length) return;
if (!tokens.length) return;
store.dispatch({
type: TYPE_OPEN_ALERT,
payload: {
@ -452,18 +457,19 @@ export default async function API(endpoint, method, headers, params, body, onSuc
await DB.reset();
navigationRef.reset({
index: 0,
routes: [{name: 'Login'}],
routes: [{ name: 'Login' }],
});
}
}
})
callLogs(err?.response, "error", "frontend", subject, action)
onError(err?.response)
callLogs(err?.response || err, "error", "frontend", subject, action);
onError(err?.response); // Always use errorToResponse
return;
}
callLogs(err?.response, "error", "frontend", subject, action);
onError(errorToResponse)
callLogs(err?.response || err, "error", "frontend", subject, action);
onError(errorToResponse);
})
return;
}
@ -471,7 +477,7 @@ export default async function API(endpoint, method, headers, params, body, onSuc
case "delete": {
let url = !params.noID ? (EP[endpoint] + "?" + params) : EP[endpoint] + "/" + params.value;
let urlToUse = endpoint.includes("/") ? EP[endpoint.split('/')[0]] + `/${endpoint.split('/')[1]}` : endpoint.includes(":") ? endpoint : url;
axios({
method: method,
url: urlToUse,
@ -482,16 +488,19 @@ export default async function API(endpoint, method, headers, params, body, onSuc
onSuccess(response.data)
}).catch(async (err) => {
console.log(err)
const errorToResponse = {
status: err?.response?.data?.status || err?.response?.status,
message: err?.response?.data?.message || err?.response?.message || "Something went wrong, please try again."
}
const hasResponse = err?.response && err?.response?.data;
if(errorToResponse.status === 401) {
const errorToResponse = {
status: hasResponse ? err.response.data.status || err.response.status : null,
message: hasResponse ? err.response.data.message || err.response.message : "Something went wrong, please try again."
};
if (errorToResponse.status === 401) {
let tokens = await DB.get("token");
if(!tokens.length) return;
if (!tokens.length) return;
store.dispatch({
type: TYPE_OPEN_ALERT,
payload: {
@ -505,18 +514,18 @@ export default async function API(endpoint, method, headers, params, body, onSuc
await DB.reset();
navigationRef.reset({
index: 0,
routes: [{name: 'Login'}],
routes: [{ name: 'Login' }],
});
}
}
})
callLogs(err?.response, "error", "frontend", subject, action)
onError(err?.response)
callLogs(err?.response || err, "error", "frontend", subject, action);
onError(err?.response); // Always use errorToResponse
return;
}
callLogs(err?.response, "error", "frontend", subject, action);
onError(errorToResponse)
callLogs(err?.response || err, "error", "frontend", subject, action);
onError(errorToResponse);
})
return;
}
@ -532,16 +541,19 @@ export default async function API(endpoint, method, headers, params, body, onSuc
callLogs(response.data, "success", "frontend", subject, action)
onSuccess(response.data)
}).catch(async (err) => {
const errorToResponse = {
status: err?.response?.data?.status || err?.response?.status,
message: err?.response?.data?.message || err?.response?.message || "Something went wrong, please try again."
}
const hasResponse = err?.response && err?.response?.data;
if(errorToResponse.status === 401) {
const errorToResponse = {
status: hasResponse ? err.response.data.status || err.response.status : null,
message: hasResponse ? err.response.data.message || err.response.message : "Something went wrong, please try again."
};
if (errorToResponse.status === 401) {
let tokens = await DB.get("token");
if(!tokens.length) return;
if (!tokens.length) return;
store.dispatch({
type: TYPE_OPEN_ALERT,
payload: {
@ -555,22 +567,22 @@ export default async function API(endpoint, method, headers, params, body, onSuc
await DB.reset();
navigationRef.reset({
index: 0,
routes: [{name: 'Login'}],
routes: [{ name: 'Login' }],
});
}
}
})
callLogs(err?.response, "error", "frontend", subject, action)
onError(err?.response)
callLogs(err?.response || err, "error", "frontend", subject, action);
onError(err?.response); // Always use errorToResponse
return;
}
callLogs(err?.response, "error", "frontend", subject, action);
onError(errorToResponse)
callLogs(err?.response || err, "error", "frontend", subject, action);
onError(errorToResponse);
})
return;
}
case "patch":
let url = !params.noID ? (EP[endpoint] + "?" + params) : EP[endpoint] + "/" + params.value;
const urlToUse = endpoint.includes("/") ? EP[endpoint.split('/')[0]] + `/${endpoint.split('/')[1]}` : endpoint.includes(":") ? endpoint : url;
@ -585,16 +597,19 @@ export default async function API(endpoint, method, headers, params, body, onSuc
callLogs(response.data, "success", "frontend", subject, action)
onSuccess(response.data)
}).catch(async (err) => {
const errorToResponse = {
status: err?.response?.data?.status || err?.response?.status,
message: err?.response?.data?.message || err?.response?.message || "Something went wrong, please try again."
}
const hasResponse = err?.response && err?.response?.data;
if(errorToResponse.status === 401) {
const errorToResponse = {
status: hasResponse ? err.response.data.status || err.response.status : null,
message: hasResponse ? err.response.data.message || err.response.message : "Something went wrong, please try again."
};
if (errorToResponse.status === 401) {
let tokens = await DB.get("token");
if(!tokens.length) return;
if (!tokens.length) return;
store.dispatch({
type: TYPE_OPEN_ALERT,
payload: {
@ -608,18 +623,18 @@ export default async function API(endpoint, method, headers, params, body, onSuc
await DB.reset();
navigationRef.reset({
index: 0,
routes: [{name: 'Login'}],
routes: [{ name: 'Login' }],
});
}
}
})
callLogs(err?.response, "error", "frontend", subject, action)
onError(err?.response)
callLogs(err?.response || err, "error", "frontend", subject, action);
onError(err?.response); // Always use errorToResponse
return;
}
callLogs(err?.response, "error", "frontend", subject, action);
onError(errorToResponse)
callLogs(err?.response || err, "error", "frontend", subject, action);
onError(errorToResponse);
})
return;

View File

@ -7,24 +7,23 @@ const DBName = "@UnioilLoyaltyApp_";
export const get = async (key) => {
try {
const result = await AsyncStorage.getItem(DBName + key);
return result ? JSON.parse(result) : null;
const result = await AsyncStorage.getItem(DBName + key)
return typeof result == 'object' ? JSON.parse(result) : result
} catch (error) {
console.error(`AsyncStorage get error for key ${key}:`, error);
return null;
return error
}
};
}
export const set = async (key, data, onSuccess, onError) => {
try {
const stringData = JSON.stringify(data);
await AsyncStorage.setItem(DBName + key, stringData);
onSuccess?.();
const stringifiedData = typeof data === 'string' ? data : JSON.stringify(data);
const result = await AsyncStorage.setItem(DBName + key, stringifiedData);
await onSuccess(result);
} catch (error) {
console.error(`AsyncStorage set error for key ${key}:`, error);
onError?.(error);
await onError(error);
}
};
}
export const reset = async () => {
try{