ReadKeep/readeck/Data/TokenManager.swift

46 lines
1.1 KiB
Swift

import Foundation
@Observable
class TokenManager {
static let shared = TokenManager()
private let settingsRepository = SettingsRepository()
private var cachedSettings: Settings?
private init() {}
var currentToken: String? {
cachedSettings?.token
}
var currentEndpoint: String? {
cachedSettings?.endpoint
}
func loadSettings() async {
do {
cachedSettings = try await settingsRepository.loadSettings()
} catch {
print("Failed to load settings: \(error)")
}
}
func updateToken(_ token: String) async {
do {
try await settingsRepository.saveToken(token)
cachedSettings?.token = token
} catch {
print("Failed to save token: \(error)")
}
}
func clearToken() async throws {
do {
try await settingsRepository.saveToken("")
cachedSettings?.token = ""
} catch {
print("Failed to clear token: \(error)")
throw error
}
}
}