2022-09-26 16:08:56 +02:00
import ' package:sqflite/sqflite.dart ' ;
Future < Map < String , dynamic > > loadDb ( ) async {
List < Map < String , Object ? > > ? servers ;
2022-09-27 15:43:52 +02:00
List < Map < String , Object ? > > ? appConfig ;
2022-09-26 16:08:56 +02:00
2022-09-30 02:24:49 +02:00
Future upgradeDbToV2 ( Database db ) async {
await db . execute ( " ALTER TABLE appConfig ADD COLUMN overrideSslCheck NUMERIC " ) ;
await db . execute ( " UPDATE appConfig SET overrideSslCheck = 0 " ) ;
await db . transaction ( ( txn ) async {
await txn . rawQuery (
' SELECT * FROM appConfig ' ,
) ;
} ) ;
}
2022-09-26 16:08:56 +02:00
Database db = await openDatabase (
' adguard_home_manager.db ' ,
2022-09-30 02:24:49 +02:00
version: 2 ,
2022-09-26 16:08:56 +02:00
onCreate: ( Database db , int version ) async {
2022-09-27 02:38:59 +02:00
await db . execute ( " CREATE TABLE servers (id TEXT PRIMARY KEY, name TEXT, connectionMethod TEXT, domain TEXT, path TEXT, port INTEGER, user TEXT, password TEXT, defaultServer INTEGER, authToken TEXT) " ) ;
2022-09-30 02:24:49 +02:00
await db . execute ( " CREATE TABLE appConfig (theme NUMERIC, overrideSslCheck NUMERIC) " ) ;
await db . execute ( " INSERT INTO appConfig (theme, overrideSslCheck) VALUES (0, 0) " ) ;
2022-09-26 16:08:56 +02:00
} ,
onUpgrade: ( Database db , int oldVersion , int newVersion ) async {
2022-09-30 02:24:49 +02:00
if ( oldVersion = = 1 ) {
await upgradeDbToV2 ( db ) ;
}
2022-09-26 16:08:56 +02:00
} ,
onOpen: ( Database db ) async {
await db . transaction ( ( txn ) async {
servers = await txn . rawQuery (
' SELECT * FROM servers ' ,
) ;
} ) ;
2022-09-27 15:43:52 +02:00
await db . transaction ( ( txn ) async {
appConfig = await txn . rawQuery (
' SELECT * FROM appConfig ' ,
) ;
} ) ;
2022-09-26 16:08:56 +02:00
}
) ;
return {
" servers " : servers ,
2022-09-27 15:43:52 +02:00
" appConfig " : appConfig ! [ 0 ] ,
2022-09-26 16:08:56 +02:00
" dbInstance " : db ,
} ;
}