Skip to content

Commit aa3c7c1

Browse files
committed
Merge branch 'develop'
2 parents 453df47 + f4bafb6 commit aa3c7c1

File tree

16 files changed

+91
-114
lines changed

16 files changed

+91
-114
lines changed

app/App.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import backgroundTask, {
1717
defineSyncFormVersionTask,
1818
} from './src/lib/background-task';
1919
import crudJobs, { jobStatus, MAX_ATTEMPT } from './src/database/crud/crud-jobs';
20+
import { ToastAndroid } from 'react-native';
2021

2122
export const setNotificationHandler = () =>
2223
Notifications.setNotificationHandler({
@@ -135,18 +136,18 @@ const App = () => {
135136
};
136137

137138
const handleInitDB = useCallback(async () => {
138-
await conn.reset();
139-
const db = conn.init;
140-
const queries = tables.map((t) => {
141-
const queryString = query.initialQuery(t.name, t.fields);
142-
return conn.tx(db, queryString);
143-
});
144139
try {
140+
await conn.reset();
141+
const db = conn.init;
142+
const queries = tables.map((t) => {
143+
const queryString = query.initialQuery(t.name, t.fields);
144+
return conn.tx(db, queryString);
145+
});
145146
await Promise.all(queries);
146147
await handleInitConfig();
147148
handleCheckSession();
148149
} catch (error) {
149-
console.error('[INITIAL DB]', error);
150+
ToastAndroid.show(`[INITIAL DB]: ${error}`, ToastAndroid.LONG);
150151
}
151152
}, [handleInitConfig, handleCheckSession]);
152153

app/src/database/conn.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ const removeDB = async () => {
8787
}
8888
}
8989
} catch (error) {
90-
console.error('[RESET DB]', error);
90+
return Promise.reject(error);
9191
}
9292
};
9393

app/src/database/crud/crud-config.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@ const configQuery = () => {
77
const id = 1;
88
return {
99
getConfig: async () => {
10-
const { rows } = await conn.tx(db, query.read('config', { id }), [id]);
11-
if (!rows.length) {
12-
return false;
13-
}
14-
return rows._array[rows.length - 1];
10+
try {
11+
const { rows } = await conn.tx(db, query.read('config', { id }), [id]);
12+
if (!rows.length) {
13+
return false;
14+
}
15+
return rows._array[rows.length - 1];
16+
} catch {}
1517
},
1618
addConfig: async (data = {}) => {
1719
const insertQuery = query.insert('config', {

app/src/lib/background-task.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,15 @@ const registerBackgroundTask = async (TASK_NAME, settingsValue = null) => {
7373
startOnBoot: true, // android only
7474
});
7575
} catch (err) {
76-
console.error('Task Register failed:', err);
76+
return Promise.reject(err);
7777
}
7878
};
7979

8080
const unregisterBackgroundTask = async (TASK_NAME) => {
8181
try {
8282
await BackgroundFetch.unregisterTaskAsync(TASK_NAME);
8383
} catch (err) {
84-
console.error('Task Unregister failed:', err);
84+
return Promise.reject(err);
8585
}
8686
};
8787

@@ -215,15 +215,16 @@ const syncFormSubmission = async (activeJob = {}) => {
215215
await crudJobs.deleteJob(activeJob.id);
216216
}
217217
return res;
218-
} catch (err) {
218+
} catch (error) {
219+
const { status: errorCode } = error?.response;
219220
if (activeJob?.id) {
220221
const updatePayload =
221222
activeJob.attempt < MAX_ATTEMPT
222223
? { status: jobStatus.FAILED, attempt: activeJob.attempt + 1 }
223224
: { status: jobStatus.ON_PROGRESS, info: String(err) };
224225
crudJobs.updateJob(activeJob.id, updatePayload);
225226
}
226-
console.error('[syncFormSubmission] Error: ', err);
227+
return Promise.reject({ errorCode, message: error?.message });
227228
}
228229
};
229230

app/src/pages/AuthForm.js

Lines changed: 29 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -95,43 +95,38 @@ const AuthForm = ({ navigation }) => {
9595
api
9696
.post('/auth', { code: passcode })
9797
.then(async (res) => {
98-
try {
99-
const { data } = res;
100-
// save session
101-
const bearerToken = data.syncToken;
102-
api.setToken(bearerToken);
103-
104-
await crudConfig.updateConfig({ authenticationCode: passcode });
105-
await cascades.createSqliteDir();
106-
// update auth state
107-
AuthState.update((s) => {
108-
s.authenticationCode = passcode;
109-
s.token = bearerToken;
110-
});
111-
112-
const userID = await handleActiveUser({
113-
...data,
114-
passcode,
115-
administrationList: JSON.stringify(data.administrations),
116-
});
117-
118-
await handleGetAllForms(data.formsUrl, userID);
119-
120-
// go to home page (form list)
121-
setTimeout(() => {
122-
navigation.navigate('Home', { newForms: true });
123-
}, 500);
124-
} catch (err) {
125-
console.error(err);
126-
}
98+
const { data } = res;
99+
// save session
100+
const bearerToken = data.syncToken;
101+
api.setToken(bearerToken);
102+
103+
await crudConfig.updateConfig({ authenticationCode: passcode });
104+
await cascades.createSqliteDir();
105+
// update auth state
106+
AuthState.update((s) => {
107+
s.authenticationCode = passcode;
108+
s.token = bearerToken;
109+
});
110+
111+
const userID = await handleActiveUser({
112+
...data,
113+
passcode,
114+
administrationList: JSON.stringify(data.administrations),
115+
});
116+
117+
await handleGetAllForms(data.formsUrl, userID);
118+
119+
// go to home page (form list)
120+
setTimeout(() => {
121+
navigation.navigate('Home', { newForms: true });
122+
}, 500);
127123
})
128124
.catch((err) => {
129-
const { status: errStatus, message: errMessage } = err?.response;
130-
if ([400, 401].includes(errStatus)) {
131-
setError(trans.authErrorPasscode);
125+
const { status: errorCode } = err?.response;
126+
if ([400, 401].includes(errorCode)) {
127+
setError(`${errorCode}: ${trans.authErrorPasscode}`);
132128
} else {
133-
console.log('errStatus', err?.message);
134-
setError(errMessage);
129+
setError(`${errorCode}: ${err?.message}`);
135130
}
136131
})
137132
.finally(() => setLoading(false));

app/src/pages/FormData.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,10 @@ const FormDataPage = ({ navigation, route }) => {
163163
} else {
164164
await runSyncSubmision();
165165
}
166-
} catch (e) {
167-
console.error('[Manual SyncFormSubmission]: ', e);
166+
} catch (error) {
167+
setData(data);
168+
setSyncing(false);
169+
ToastAndroid.show(`${error?.errorCode}: ${error?.message}`, ToastAndroid.LONG);
168170
}
169171
};
170172

app/src/pages/FormPage.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,10 +120,9 @@ const FormPage = ({ navigation, route }) => {
120120
}
121121
refreshForm();
122122
navigation.navigate('Home', { ...route?.params });
123-
} catch (err) {
124-
console.error(err);
123+
} catch (error) {
125124
if (Platform.OS === 'android') {
126-
ToastAndroid.show(trans.errorSaveDatapoint, ToastAndroid.LONG);
125+
ToastAndroid.show(`SQL: ${error}`, ToastAndroid.LONG);
127126
}
128127
}
129128
};
@@ -192,10 +191,9 @@ const FormPage = ({ navigation, route }) => {
192191
}
193192
refreshForm();
194193
navigation.navigate('Home', { ...route?.params });
195-
} catch (err) {
196-
console.error(err);
194+
} catch (error) {
197195
if (Platform.OS === 'android') {
198-
ToastAndroid.show(trans.errorSubmitted, ToastAndroid.LONG);
196+
ToastAndroid.show(`SQL: ${error}`, ToastAndroid.LONG);
199197
}
200198
}
201199
};

app/src/pages/GetStarted.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,10 @@ const GetStarted = ({ navigation }) => {
1616
const trans = i18n.text(activeLang);
1717

1818
const getConfig = useCallback(async () => {
19-
try {
20-
const config = await crudConfig.getConfig();
21-
if (config) {
22-
setCurrentConfig(config);
23-
}
24-
} catch (error) {}
19+
const config = await crudConfig.getConfig();
20+
if (config) {
21+
setCurrentConfig(config);
22+
}
2523
}, []);
2624

2725
const isServerURLDefined = useMemo(() => {

app/src/pages/Home.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ const Home = ({ navigation, route }) => {
6767
.filter((r) => r?.userId === currentUserId);
6868
setData(forms);
6969
setloading(false);
70-
} catch {
70+
} catch (error) {
7171
if (Platform.OS === 'android') {
72-
ToastAndroid.show(trans.errorFormsNotLoaded, ToastAndroid.SHORT);
72+
ToastAndroid.show(`SQL: ${error}`, ToastAndroid.SHORT);
7373
}
7474
}
7575
}

backend/api/v1/v1_data/models.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,10 @@ def to_data_frame(self):
5353
"updated_by":
5454
self.updated_by.get_full_name() if self.updated_by else None,
5555
"created_at":
56-
self.created.strftime("%B %d, %Y"),
56+
self.created.strftime("%B %d, %Y %I:%M %p"),
5757
"updated_at":
58-
self.updated.strftime("%B %d, %Y") if self.updated else None,
58+
self.updated.strftime("%B %d, %Y %I:%M %p")
59+
if self.updated else None,
5960
}
6061
for a in self.data_answer.order_by(
6162
'question__question_group_id',

0 commit comments

Comments
 (0)