aboutsummaryrefslogtreecommitdiff
path: root/iosApp/iosApp/iOSApp.swift
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2022-01-26 23:16:11 -0600
committerIván Ávalos <avalos@disroot.org>2022-01-26 23:16:11 -0600
commitfeba14e1858aaf3fad2673b362f4c6b91bad83eb (patch)
treea11b350e04e304c95a05389dadb62a273bf638fd /iosApp/iosApp/iOSApp.swift
parente369918a12347884898d7c3e9bebf92731db55d5 (diff)
downloadetbsa-trackermap-mobile-feba14e1858aaf3fad2673b362f4c6b91bad83eb.tar.gz
etbsa-trackermap-mobile-feba14e1858aaf3fad2673b362f4c6b91bad83eb.tar.bz2
etbsa-trackermap-mobile-feba14e1858aaf3fad2673b362f4c6b91bad83eb.zip
Implemented dependency injection with Swift property wrappers
Diffstat (limited to 'iosApp/iosApp/iOSApp.swift')
-rw-r--r--iosApp/iosApp/iOSApp.swift42
1 files changed, 42 insertions, 0 deletions
diff --git a/iosApp/iosApp/iOSApp.swift b/iosApp/iosApp/iOSApp.swift
index 26c93f1..61c6afc 100644
--- a/iosApp/iosApp/iOSApp.swift
+++ b/iosApp/iosApp/iOSApp.swift
@@ -1,8 +1,50 @@
+import Foundation
import SwiftUI
import shared
@main
struct iOSApp: App {
+
+ init() {
+ /* Dependency injections */
+
+ Resolver.shared.add(SessionManager.self) { resolver in
+ return SessionManager(defaultBaseUrl: NSLocalizedString("app-server-url", comment: ""))
+ }
+ Resolver.shared.add(SessionApi.self) { resolver in
+ return SessionApi(sessionManager: resolver.resolve())
+ }
+ Resolver.shared.add(UsersApi.self) { resolver in
+ return UsersApi(sessionManager: resolver.resolve())
+ }
+ Resolver.shared.add(DevicesApi.self) { resolver in
+ return DevicesApi(sessionManager: resolver.resolve())
+ }
+ Resolver.shared.add(PositionsApi.self) { resolver in
+ return PositionsApi(sessionManager: resolver.resolve())
+ }
+ Resolver.shared.add(CommandsApi.self) { resolver in
+ return CommandsApi(sessionManager: resolver.resolve())
+ }
+ Resolver.shared.add(ReportsApi.self) { resolver in
+ return ReportsApi(sessionManager: resolver.resolve())
+ }
+ Resolver.shared.add(GeofencesApi.self) { resolver in
+ return GeofencesApi(sessionManager: resolver.resolve())
+ }
+ Resolver.shared.add(SessionController.self) { resolver in
+ return SessionController(sessionApi: resolver.resolve(), usersApi: resolver.resolve())
+ }
+ Resolver.shared.add(UnitsController.self) { resolver in
+ return UnitsController(devicesApi: resolver.resolve(), positionsApi: resolver.resolve())
+ }
+ Resolver.shared.add(GeofencesController.self) { resolver in
+ return GeofencesController(geofencesApi: resolver.resolve())
+ }
+ Resolver.shared.add(ReportController.self) { resolver in
+ return ReportController(reportsApi: resolver.resolve(), geofencesApi: resolver.resolve())
+ }
+ }
var body: some Scene {
WindowGroup {