WIP
This commit is contained in:
@@ -8,10 +8,19 @@
|
||||
import Foundation
|
||||
|
||||
class UserStore: ObservableObject {
|
||||
static let userDefaultsRegisteredUserKey = "registeredUserKey"
|
||||
static let shared = UserStore()
|
||||
|
||||
@Published public private(set) var registeredUser: RegisteredUser?
|
||||
|
||||
init(registeredUser: RegisteredUser? = nil) {
|
||||
self.registeredUser = registeredUser
|
||||
if let data = UserDefaults.standard.data(forKey: UserStore.userDefaultsRegisteredUserKey),
|
||||
let model = try? JSONDecoder().decode(RegisteredUser.self, from: data) {
|
||||
self.registeredUser = model
|
||||
}
|
||||
}
|
||||
|
||||
public var token: String? {
|
||||
guard let token = registeredUser?.token else {
|
||||
return nil
|
||||
@@ -19,19 +28,28 @@ class UserStore: ObservableObject {
|
||||
return "Token \(token)"
|
||||
}
|
||||
|
||||
func login(completion: @escaping (Bool)-> Void) {
|
||||
let postData = ["email": "user1@user1.com", "password":"test12345"]
|
||||
func login(postData: [String: Any], completion: @escaping (Bool)-> Void) {
|
||||
LoginFetchable(postData: postData).fetch(completion: { result in
|
||||
switch result {
|
||||
case .success(let model):
|
||||
self.registeredUser = model
|
||||
completion(true)
|
||||
DispatchQueue.main.async {
|
||||
self.registeredUser = model
|
||||
let data = try! JSONEncoder().encode(model)
|
||||
UserDefaults.standard.set(data, forKey: UserStore.userDefaultsRegisteredUserKey)
|
||||
completion(true)
|
||||
}
|
||||
case .failure(let failure):
|
||||
completion(false)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func logout() {
|
||||
self.registeredUser = nil
|
||||
UserDefaults.standard.set(nil, forKey: UserStore.userDefaultsRegisteredUserKey)
|
||||
NotificationCenter.default.post(name: NSNotification.Name("CreatedNewWorkout"), object: nil, userInfo: nil)
|
||||
}
|
||||
|
||||
func setFakeUser() {
|
||||
self.registeredUser = PreviewWorkout.parseRegisterdUser()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user