diff options
Diffstat (limited to 'iosApp/iosApp/Session/LoginViewModel.swift')
-rw-r--r-- | iosApp/iosApp/Session/LoginViewModel.swift | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/iosApp/iosApp/Session/LoginViewModel.swift b/iosApp/iosApp/Session/LoginViewModel.swift new file mode 100644 index 0000000..ee3038e --- /dev/null +++ b/iosApp/iosApp/Session/LoginViewModel.swift @@ -0,0 +1,38 @@ +// +// LoginViewModel.swift +// iosApp +// +// Created by Iván on 27/01/22. +// Copyright © 2022 orgName. All rights reserved. +// + +import Foundation +import shared + +class LoginViewModel: ObservableObject { + @Inject private var sessionController: SessionController + + @Published var loginState: SessionController.LoginState = SessionController.LoginStateNothing() + + init () { + let collector = Collector<SessionController.LoginState?>(callback: setLoginState) + sessionController.loginStateFlow.collect(collector: collector) { (unit, error) in } + restoreSession() + } + + func setLoginState (state: SessionController.LoginState?) { + print("State is: \(state?.debugDescription ?? "")") + self.loginState = state ?? SessionController.LoginStateNothing() + } + + func restoreSession() { + sessionController.restoreSession() + } + + func login (session: SessionBody) { + print("Username: \(session.email)") + print("Password: \(session.password)") + print("Server URL: \(session.url)") + sessionController.login(body: session) + } +} |