diff --git a/ProjectClock/AccountViewController.swift b/ProjectClock/AccountViewController.swift index 4a0d73b..4998a6e 100644 --- a/ProjectClock/AccountViewController.swift +++ b/ProjectClock/AccountViewController.swift @@ -102,7 +102,7 @@ class LoginVC: UIViewController send(APIs.familyGet) { - localStorage["family"] = $0 + $0.localSave() self.loginSuccess(login) } err: { it in self.loginSuccess(login) } @@ -280,7 +280,7 @@ class FamilyCreateJoinVC: UIViewController sendReq(APIs.familyCreate, title: "Creating...", params: ["name": name, "pin": pin]) { // Save - localStorage["family"] = $0 + $0.localSave() // Send success message self.msg("Created!", "Your family ID is \($0.fid)") diff --git a/ProjectClock/Models.swift b/ProjectClock/Models.swift index 8a1728e..ec441a8 100644 --- a/ProjectClock/Models.swift +++ b/ProjectClock/Models.swift @@ -14,6 +14,19 @@ struct Family: Codable var name: String var members: String // And a hidden field: admin pin + + /// Save family to local storage + func localSave() + { + localStorage.setValue(JSON.stringify(self)!, forKey: "family") + } + + /// Read family object from local storage + static func fromLocal() -> Family? + { + guard let f = localStorage.string(forKey: "family") else { return nil } + return JSON.parse(Family.self, f) + } } struct WVM: Codable