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

@ -379,10 +379,12 @@ export default async function API(endpoint, method, headers, params, body, onSuc
callLogs(response.data, "success", "frontend", subject, action) callLogs(response.data, "success", "frontend", subject, action)
onSuccess(response.data) onSuccess(response.data)
}).catch(async (err) => { }).catch(async (err) => {
const hasResponse = err?.response && err?.response?.data;
const errorToResponse = { const errorToResponse = {
status: err?.response?.data?.status || err?.response?.status, status: hasResponse ? err.response.data.status || err.response.status : null,
message: err?.response?.data?.message || err?.response?.message || "Something went wrong, please try again." message: hasResponse ? err.response.data.message || err.response.message : "Something went wrong, please try again."
} };
if (errorToResponse.status === 401) { if (errorToResponse.status === 401) {
let tokens = await DB.get("token"); let tokens = await DB.get("token");
@ -407,13 +409,13 @@ export default async function API(endpoint, method, headers, params, body, onSuc
} }
} }
}) })
callLogs(err?.response, "error", "frontend", subject, action) callLogs(err?.response || err, "error", "frontend", subject, action);
onError(err?.response) onError(err?.response); // Always use errorToResponse
return; return;
} }
callLogs(err?.response, "error", "frontend", subject, action); callLogs(err?.response || err, "error", "frontend", subject, action);
onError(errorToResponse) onError(errorToResponse);
}) })
return; return;
} }
@ -429,10 +431,13 @@ export default async function API(endpoint, method, headers, params, body, onSuc
callLogs(response.data, "success", "frontend", subject, action) callLogs(response.data, "success", "frontend", subject, action)
onSuccess(response.data) onSuccess(response.data)
}).catch(async (err) => { }).catch(async (err) => {
const hasResponse = err?.response && err?.response?.data;
const errorToResponse = { const errorToResponse = {
status: err?.response?.data?.status || err?.response?.status, status: hasResponse ? err.response.data.status || err.response.status : null,
message: err?.response?.data?.message || err?.response?.message || "Something went wrong, please try again." message: hasResponse ? err.response.data.message || err.response.message : "Something went wrong, please try again."
} };
if (errorToResponse.status === 401) { if (errorToResponse.status === 401) {
let tokens = await DB.get("token"); let tokens = await DB.get("token");
@ -457,13 +462,14 @@ export default async function API(endpoint, method, headers, params, body, onSuc
} }
} }
}) })
callLogs(err?.response, "error", "frontend", subject, action) callLogs(err?.response || err, "error", "frontend", subject, action);
onError(err?.response) onError(err?.response); // Always use errorToResponse
return; return;
} }
callLogs(err?.response, "error", "frontend", subject, action); callLogs(err?.response || err, "error", "frontend", subject, action);
onError(errorToResponse) onError(errorToResponse);
}) })
return; return;
} }
@ -482,10 +488,13 @@ export default async function API(endpoint, method, headers, params, body, onSuc
onSuccess(response.data) onSuccess(response.data)
}).catch(async (err) => { }).catch(async (err) => {
console.log(err) console.log(err)
const hasResponse = err?.response && err?.response?.data;
const errorToResponse = { const errorToResponse = {
status: err?.response?.data?.status || err?.response?.status, status: hasResponse ? err.response.data.status || err.response.status : null,
message: err?.response?.data?.message || err?.response?.message || "Something went wrong, please try again." message: hasResponse ? err.response.data.message || err.response.message : "Something went wrong, please try again."
} };
if (errorToResponse.status === 401) { if (errorToResponse.status === 401) {
let tokens = await DB.get("token"); let tokens = await DB.get("token");
@ -510,13 +519,13 @@ export default async function API(endpoint, method, headers, params, body, onSuc
} }
} }
}) })
callLogs(err?.response, "error", "frontend", subject, action) callLogs(err?.response || err, "error", "frontend", subject, action);
onError(err?.response) onError(err?.response); // Always use errorToResponse
return; return;
} }
callLogs(err?.response, "error", "frontend", subject, action); callLogs(err?.response || err, "error", "frontend", subject, action);
onError(errorToResponse) onError(errorToResponse);
}) })
return; return;
} }
@ -532,10 +541,13 @@ export default async function API(endpoint, method, headers, params, body, onSuc
callLogs(response.data, "success", "frontend", subject, action) callLogs(response.data, "success", "frontend", subject, action)
onSuccess(response.data) onSuccess(response.data)
}).catch(async (err) => { }).catch(async (err) => {
const hasResponse = err?.response && err?.response?.data;
const errorToResponse = { const errorToResponse = {
status: err?.response?.data?.status || err?.response?.status, status: hasResponse ? err.response.data.status || err.response.status : null,
message: err?.response?.data?.message || err?.response?.message || "Something went wrong, please try again." message: hasResponse ? err.response.data.message || err.response.message : "Something went wrong, please try again."
} };
if (errorToResponse.status === 401) { if (errorToResponse.status === 401) {
let tokens = await DB.get("token"); let tokens = await DB.get("token");
@ -560,13 +572,13 @@ export default async function API(endpoint, method, headers, params, body, onSuc
} }
} }
}) })
callLogs(err?.response, "error", "frontend", subject, action) callLogs(err?.response || err, "error", "frontend", subject, action);
onError(err?.response) onError(err?.response); // Always use errorToResponse
return; return;
} }
callLogs(err?.response, "error", "frontend", subject, action); callLogs(err?.response || err, "error", "frontend", subject, action);
onError(errorToResponse) onError(errorToResponse);
}) })
return; return;
} }
@ -585,10 +597,13 @@ export default async function API(endpoint, method, headers, params, body, onSuc
callLogs(response.data, "success", "frontend", subject, action) callLogs(response.data, "success", "frontend", subject, action)
onSuccess(response.data) onSuccess(response.data)
}).catch(async (err) => { }).catch(async (err) => {
const hasResponse = err?.response && err?.response?.data;
const errorToResponse = { const errorToResponse = {
status: err?.response?.data?.status || err?.response?.status, status: hasResponse ? err.response.data.status || err.response.status : null,
message: err?.response?.data?.message || err?.response?.message || "Something went wrong, please try again." message: hasResponse ? err.response.data.message || err.response.message : "Something went wrong, please try again."
} };
if (errorToResponse.status === 401) { if (errorToResponse.status === 401) {
let tokens = await DB.get("token"); let tokens = await DB.get("token");
@ -613,13 +628,13 @@ export default async function API(endpoint, method, headers, params, body, onSuc
} }
} }
}) })
callLogs(err?.response, "error", "frontend", subject, action) callLogs(err?.response || err, "error", "frontend", subject, action);
onError(err?.response) onError(err?.response); // Always use errorToResponse
return; return;
} }
callLogs(err?.response, "error", "frontend", subject, action); callLogs(err?.response || err, "error", "frontend", subject, action);
onError(errorToResponse) onError(errorToResponse);
}) })
return; return;

View File

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