diff --git a/android/.gradle/7.5.1/executionHistory/executionHistory.bin b/android/.gradle/7.5.1/executionHistory/executionHistory.bin index 1de24702..5ce704a2 100644 Binary files a/android/.gradle/7.5.1/executionHistory/executionHistory.bin and b/android/.gradle/7.5.1/executionHistory/executionHistory.bin differ diff --git a/android/.gradle/7.5.1/executionHistory/executionHistory.lock b/android/.gradle/7.5.1/executionHistory/executionHistory.lock index 8bb74c07..2245057a 100644 Binary files a/android/.gradle/7.5.1/executionHistory/executionHistory.lock and b/android/.gradle/7.5.1/executionHistory/executionHistory.lock differ diff --git a/android/.gradle/7.5.1/fileHashes/fileHashes.bin b/android/.gradle/7.5.1/fileHashes/fileHashes.bin index 286ad4fc..0395d896 100644 Binary files a/android/.gradle/7.5.1/fileHashes/fileHashes.bin and b/android/.gradle/7.5.1/fileHashes/fileHashes.bin differ diff --git a/android/.gradle/7.5.1/fileHashes/fileHashes.lock b/android/.gradle/7.5.1/fileHashes/fileHashes.lock index b4a7ca15..e85598c9 100644 Binary files a/android/.gradle/7.5.1/fileHashes/fileHashes.lock and b/android/.gradle/7.5.1/fileHashes/fileHashes.lock differ diff --git a/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 053b8b74..5543c631 100644 Binary files a/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/android/.gradle/file-system.probe b/android/.gradle/file-system.probe index f555164c..4f6790e4 100644 Binary files a/android/.gradle/file-system.probe and b/android/.gradle/file-system.probe differ diff --git a/app/components/api/index.js b/app/components/api/index.js index 77cd4a72..9d7bd6b9 100644 --- a/app/components/api/index.js +++ b/app/components/api/index.js @@ -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; diff --git a/app/components/storage/index.js b/app/components/storage/index.js index 76f99104..54550538 100644 --- a/app/components/storage/index.js +++ b/app/components/storage/index.js @@ -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{