From e9387de8797ee35a2833d9ce48bcda5c85ea646c Mon Sep 17 00:00:00 2001 From: Hykilpikonna Date: Sun, 24 Jan 2021 20:05:35 -0500 Subject: [PATCH] [+] Implement family checking after login --- ProjectClock/AccountViewController.swift | 15 ++++++++++++++- ProjectClock/Utils.swift | 5 ++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/ProjectClock/AccountViewController.swift b/ProjectClock/AccountViewController.swift index c5a7aa4..d1e8403 100644 --- a/ProjectClock/AccountViewController.swift +++ b/ProjectClock/AccountViewController.swift @@ -48,7 +48,7 @@ class AccountViewController: UIViewController func logout() { // Remove login info - ["id", "user", "pass"].forEach { localStorage.removeObject(forKey: $0) } + ["id", "user", "pass", "family"].forEach { localStorage.removeObject(forKey: $0) } // Switch UI vLogin.isHidden = false @@ -100,6 +100,19 @@ class LoginVC: UIViewController localStorage["pass"] = pass.sha256 localStorage["id"] = $0 + send(APIs.familyGet) + { + localStorage["family"] = $0 + self.loginSuccess(login) + } + err: { it in self.loginSuccess(login) } + } + } + + private func loginSuccess(_ login: Bool) + { + ui + { // Send feedback if login { self.msg("Login success!", "Now you can use account features, yay!") } else { self.msg("Registration success!", "Now you have an account, yay!") } diff --git a/ProjectClock/Utils.swift b/ProjectClock/Utils.swift index 0d487ab..b825763 100644 --- a/ProjectClock/Utils.swift +++ b/ProjectClock/Utils.swift @@ -148,13 +148,16 @@ extension UIViewController /** Send a http request even more conveniently */ - func sendReq(_ api: API, title: String, errors: [String: String] = [:], params: [String: String]? = [:], _ success: @escaping (T) -> Void, err: @escaping (String) -> Void = {it in}) + func sendReq(_ api: API, title: String, errors: [String: String] = [:], params: [String: String]? = [:], _ success: @escaping (T) -> Void, err: ((String) -> Void)? = nil) { // Send request let a = alert(title, "Please Wait") send(api, params) { it in a.dismiss { success(it) } } err: { + // Call callback error function + if let err = err { err($0); return } + // Display error message print("===== Error: \($0) =====") let message = errors[$0.trimmingCharacters(in: .whitespaces)]