aboutsummaryrefslogtreecommitdiff
path: root/iosApp/iosApp/Session/RootViewModel.swift
diff options
context:
space:
mode:
Diffstat (limited to 'iosApp/iosApp/Session/RootViewModel.swift')
-rw-r--r--iosApp/iosApp/Session/RootViewModel.swift38
1 files changed, 38 insertions, 0 deletions
diff --git a/iosApp/iosApp/Session/RootViewModel.swift b/iosApp/iosApp/Session/RootViewModel.swift
new file mode 100644
index 0000000..9c664ef
--- /dev/null
+++ b/iosApp/iosApp/Session/RootViewModel.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 RootViewModel: 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)
+ }
+}