Files
Thijooree-iOS/Thijooree iOS/Storage/ContactsCache.swift
T

26 lines
909 B
Swift

import Foundation
// Encrypted contacts cache backed by UserDefaults (same pattern as AccountCache).
struct ContactsCache {
static let shared = ContactsCache()
private let udKey = "thijooree_contacts_v1"
private init() {}
func save(_ contacts: [BankContact]) {
guard let json = try? JSONEncoder().encode(contacts),
let encrypted = try? CacheEncryption.shared.encryptData(json) else { return }
UserDefaults.standard.set(encrypted, forKey: udKey)
}
func load() -> [BankContact] {
guard let encrypted = UserDefaults.standard.string(forKey: udKey),
let json = try? CacheEncryption.shared.decryptData(encrypted),
let contacts = try? JSONDecoder().decode([BankContact].self, from: json) else { return [] }
return contacts
}
func clear() {
UserDefaults.standard.removeObject(forKey: udKey)
}
}