-
Notifications
You must be signed in to change notification settings - Fork 0
/
database.js
65 lines (57 loc) · 1.57 KB
/
database.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import * as SQLite from 'expo-sqlite';
const db = SQLite.openDatabase('busnow.db');
// Initialize the database
export const init = () => {
const promise = new Promise((resolve, reject) => {
db.transaction((tx) => {
tx.executeSql(
'CREATE TABLE IF NOT EXISTS saved_stops (id INTEGER PRIMARY KEY NOT NULL, stopId TEXT NOT NULL, name TEXT NOT NULL);',
[],
() => { resolve(); },
(_, err) => { reject(err); }
);
});
});
return promise;
};
// Save a stop to the database
export const saveStopToDB = (stop) => {
const promise = new Promise((resolve, reject) => {
db.transaction((tx) => {
tx.executeSql(
'INSERT INTO saved_stops (stopId, name) VALUES (?, ?);',
[stop.id, stop.name],
(_, result) => { resolve(result); },
(_, err) => { reject(err); }
);
});
});
return promise;
};
// Load saved stops from the database
export const loadSavedStops = () => {
const promise = new Promise((resolve, reject) => {
db.transaction((tx) => {
tx.executeSql(
'SELECT * FROM saved_stops;',
[],
(_, result) => { resolve(result.rows._array); },
(_, err) => { reject(err); }
);
});
});
return promise;
};
// Delete an existing stop from the database
export const deleteStopById = (id) => {
return new Promise((resolve, reject) => {
db.transaction(tx => {
tx.executeSql(
'DELETE FROM saved_stops WHERE id = ?;',
[id],
(_, result) => resolve(result),
(_, error) => reject(error)
);
});
});
};