2022-10-31 00:37:42 +00:00
|
|
|
import SQLite, { ResultSet, SQLiteDatabase, Transaction } from 'react-native-sqlite-storage'
|
|
|
|
import { errorCallback } from './Errors'
|
2022-10-24 17:27:31 +00:00
|
|
|
|
|
|
|
export const initDatabase: () => SQLiteDatabase = () => {
|
|
|
|
return SQLite.openDatabase(
|
|
|
|
{ name: 'nostros.db', location: 'default' },
|
|
|
|
() => {},
|
2022-10-31 01:23:27 +00:00
|
|
|
() => {},
|
2022-10-31 00:37:42 +00:00
|
|
|
)
|
|
|
|
}
|
2022-10-24 17:27:31 +00:00
|
|
|
|
|
|
|
export const getItems: (resultSet: ResultSet) => object[] = (resultSet) => {
|
2022-10-31 00:37:42 +00:00
|
|
|
const result: object[] = []
|
2022-10-24 17:27:31 +00:00
|
|
|
|
|
|
|
for (let i = 0; i < resultSet.rows.length; i++) {
|
2022-10-31 00:37:42 +00:00
|
|
|
result.push(resultSet.rows.item(i))
|
2022-10-24 17:27:31 +00:00
|
|
|
}
|
|
|
|
|
2022-10-31 00:37:42 +00:00
|
|
|
return result
|
|
|
|
}
|
2022-10-24 17:27:31 +00:00
|
|
|
|
2022-10-25 02:29:59 +00:00
|
|
|
export const simpleExecute: (query: string, db: SQLiteDatabase) => Promise<Transaction> = async (
|
|
|
|
query,
|
2022-10-31 01:23:27 +00:00
|
|
|
db,
|
2022-10-25 02:29:59 +00:00
|
|
|
) => {
|
2022-10-24 17:27:31 +00:00
|
|
|
return await db.transaction((transaction) => {
|
2022-10-31 00:37:42 +00:00
|
|
|
transaction.executeSql(query, [], () => {}, errorCallback(query))
|
|
|
|
})
|
|
|
|
}
|
2022-10-24 17:27:31 +00:00
|
|
|
|
|
|
|
export const dropTables: (db: SQLiteDatabase) => Promise<Transaction> = async (db) => {
|
|
|
|
const dropQueries = [
|
|
|
|
'DROP TABLE IF EXISTS nostros_notes;',
|
|
|
|
'DROP TABLE IF EXISTS nostros_users;',
|
2022-10-31 01:23:27 +00:00
|
|
|
'DROP TABLE IF EXISTS nostros_relays;',
|
2022-10-31 00:37:42 +00:00
|
|
|
]
|
2022-10-24 17:27:31 +00:00
|
|
|
return await db.transaction((transaction) => {
|
|
|
|
dropQueries.forEach((query) => {
|
2022-10-31 00:37:42 +00:00
|
|
|
transaction.executeSql(query, [], () => {}, errorCallback(query))
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|