42 lines
936 B
Swift
42 lines
936 B
Swift
import Combine
|
|
import Foundation
|
|
import GRDB
|
|
import SwiftUI
|
|
|
|
struct Credentials: DBStorable, Hashable {
|
|
static let databaseTableName = "credentials"
|
|
|
|
var id: String { bareJid }
|
|
var bareJid: String
|
|
var pass: String
|
|
var isActive: Bool
|
|
|
|
func save() async throws {
|
|
let db = Database.shared.dbQueue
|
|
try await db.write { db in
|
|
try self.save(db)
|
|
}
|
|
}
|
|
|
|
func delete() async throws {
|
|
let db = Database.shared.dbQueue
|
|
_ = try await db.write { db in
|
|
try self.delete(db)
|
|
}
|
|
}
|
|
|
|
func setActive(flag: Bool) async throws {
|
|
let db = Database.shared.dbQueue
|
|
_ = try await db.write { db in
|
|
var updated = self
|
|
updated.isActive = flag
|
|
try updated.save(db)
|
|
}
|
|
}
|
|
}
|
|
|
|
extension Credentials: UniversalInputSelectionElement {
|
|
var text: String? { bareJid }
|
|
var icon: Image? { nil }
|
|
}
|