Fix configs sharing an index

This commit is contained in:
ronaldheft
2022-08-26 20:04:06 -04:00
parent ba1efedd79
commit c1f803bdd0
2 changed files with 31 additions and 19 deletions
+1 -1
View File
@@ -43,7 +43,7 @@ public class AbsDatabase: CAPPlugin {
let config = ServerConnectionConfig() let config = ServerConnectionConfig()
config.id = id ?? "" config.id = id ?? ""
config.index = 1 config.index = 0
config.name = name config.name = name
config.address = address config.address = address
config.userId = userId config.userId = userId
+30 -18
View File
@@ -20,26 +20,38 @@ class Database {
let realm = try! Realm() let realm = try! Realm()
let existing: ServerConnectionConfig? = realm.object(ofType: ServerConnectionConfig.self, forPrimaryKey: config.id) let existing: ServerConnectionConfig? = realm.object(ofType: ServerConnectionConfig.self, forPrimaryKey: config.id)
if config.index == 0 { if let existing = existing {
let lastConfig: ServerConnectionConfig? = realm.objects(ServerConnectionConfig.self).last do {
try existing.update {
if lastConfig != nil { existing.name = config.name
config.index = lastConfig!.index + 1 existing.address = config.address
} else { existing.userId = config.userId
config.index = 1 existing.username = config.username
} existing.token = config.token
}
do {
try realm.write {
if existing != nil {
realm.delete(existing!)
} }
realm.add(config) } catch {
NSLog("failed to update server config")
debugPrint(error)
}
} else {
if config.index == 0 {
let lastConfig: ServerConnectionConfig? = realm.objects(ServerConnectionConfig.self).last
if lastConfig != nil {
config.index = lastConfig!.index + 1
} else {
config.index = 1
}
}
do {
try realm.write {
realm.add(config)
}
} catch(let exception) {
NSLog("failed to save server config")
debugPrint(exception)
} }
} catch(let exception) {
NSLog("failed to save server config")
debugPrint(exception)
} }
setLastActiveConfigIndex(index: config.index) setLastActiveConfigIndex(index: config.index)