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

@ -320,7 +320,7 @@ export default async function API(endpoint, method, headers, params, body, onSuc
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,15 +379,17 @@ 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,
@ -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,15 +431,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,
@ -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;
}
@ -482,15 +488,18 @@ 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,
@ -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,15 +541,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,
@ -555,18 +567,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;
}
@ -585,15 +597,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,
@ -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{