summaryrefslogtreecommitdiff
path: root/Hutch/App/AccountSession.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-07-16 11:50:53 -0500
committerGitHub <[email protected]>2026-07-16 11:50:53 -0500
commit0b6819d2d08b552e62fd236614d4c3c86a13394b (patch)
treeefb71f83c6dc62778ab01de9951cd229b50f348c /Hutch/App/AccountSession.swift
parent2b913e1b727429a3a6bc7eb023003ef2815919ae (diff)
parentf3c70e04148c57dcafead89b4e02b83e5f5635f8 (diff)
downloadhutch-0b6819d2d08b552e62fd236614d4c3c86a13394b.tar.gz
hutch-0b6819d2d08b552e62fd236614d4c3c86a13394b.tar.bz2
hutch-0b6819d2d08b552e62fd236614d4c3c86a13394b.zip
Merge pull request #8 from zerolabsco/phase-3-sonarcloud-housekeepingv3.8.1
v3.8.1: SonarCloud triage, forceRefresh fix, housekeeping
Diffstat (limited to 'Hutch/App/AccountSession.swift')
-rw-r--r--Hutch/App/AccountSession.swift32
1 files changed, 32 insertions, 0 deletions
diff --git a/Hutch/App/AccountSession.swift b/Hutch/App/AccountSession.swift
new file mode 100644
index 0000000..1918b0a
--- /dev/null
+++ b/Hutch/App/AccountSession.swift
@@ -0,0 +1,32 @@
+import Foundation
+
+struct AccountSession: Sendable {
+ let account: AccountEntry
+ let user: User
+ let client: SRHTClient
+ let defaults: UserDefaults
+ let systemStatusRepository: SystemStatusRepository
+
+ var id: String {
+ account.id
+ }
+}
+
+enum AccountDefaultsStore {
+ private static let suitePrefix = "net.cleberg.Hutch.account"
+
+ static func userDefaults(for accountID: String) -> UserDefaults {
+ let suiteName = suiteName(for: accountID)
+ return UserDefaults(suiteName: suiteName) ?? .standard
+ }
+
+ static func clear(accountID: String) {
+ let suiteName = suiteName(for: accountID)
+ guard let defaults = UserDefaults(suiteName: suiteName) else { return }
+ defaults.removePersistentDomain(forName: suiteName)
+ }
+
+ private static func suiteName(for accountID: String) -> String {
+ "\(suitePrefix).\(accountID)"
+ }
+}