diff options
author | Iván Ávalos <avalos@disroot.org> | 2022-01-26 23:16:11 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2022-01-26 23:16:11 -0600 |
commit | feba14e1858aaf3fad2673b362f4c6b91bad83eb (patch) | |
tree | a11b350e04e304c95a05389dadb62a273bf638fd /iosApp/iosApp/iOSApp.swift | |
parent | e369918a12347884898d7c3e9bebf92731db55d5 (diff) | |
download | etbsa-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.swift | 42 |
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 { |