Adding stubs for VehicleService
This commit is contained in:
parent
bc88a7bb0e
commit
3cc2ef2101
@ -148,6 +148,8 @@
|
||||
7AB4E42C2D397D8E0006D052 /* VehicleCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AB4E42B2D397D8E0006D052 /* VehicleCellView.swift */; };
|
||||
7AB4E4332D3C21C00006D052 /* FileManagerExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AB4E4322D3C21C00006D052 /* FileManagerExt.swift */; };
|
||||
7AB4E4382D3D0C5C0006D052 /* VehiclesArchive.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AB4E4372D3D0C5C0006D052 /* VehiclesArchive.swift */; };
|
||||
7AB4E43B2D3D3F4F0006D052 /* VehicleServiceProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AB4E43A2D3D3F4F0006D052 /* VehicleServiceProtocol.swift */; };
|
||||
7AB4E43D2D3D3F7A0006D052 /* VehicleService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AB4E43C2D3D3F7A0006D052 /* VehicleService.swift */; };
|
||||
7AB5871D2C42C1CF00FA7B66 /* RealmSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 7AB5871C2C42C1CF00FA7B66 /* RealmSwift */; };
|
||||
7AB587322C42D38E00FA7B66 /* StorageServiceProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AB587312C42D38E00FA7B66 /* StorageServiceProtocol.swift */; };
|
||||
7AB587342C42D3FA00FA7B66 /* StorageService+Notes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AB587332C42D3FA00FA7B66 /* StorageService+Notes.swift */; };
|
||||
@ -421,6 +423,8 @@
|
||||
7AB4E42B2D397D8E0006D052 /* VehicleCellView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VehicleCellView.swift; sourceTree = "<group>"; };
|
||||
7AB4E4322D3C21C00006D052 /* FileManagerExt.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileManagerExt.swift; sourceTree = "<group>"; };
|
||||
7AB4E4372D3D0C5C0006D052 /* VehiclesArchive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VehiclesArchive.swift; sourceTree = "<group>"; };
|
||||
7AB4E43A2D3D3F4F0006D052 /* VehicleServiceProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VehicleServiceProtocol.swift; sourceTree = "<group>"; };
|
||||
7AB4E43C2D3D3F7A0006D052 /* VehicleService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VehicleService.swift; sourceTree = "<group>"; };
|
||||
7AB562B9249C9E9B00473D53 /* VehicleRegion.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VehicleRegion.swift; sourceTree = "<group>"; };
|
||||
7AB587222C42D27F00FA7B66 /* AutoCatTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AutoCatTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
7AB587312C42D38E00FA7B66 /* StorageServiceProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StorageServiceProtocol.swift; sourceTree = "<group>"; };
|
||||
@ -765,6 +769,7 @@
|
||||
7A45FB362C2706D000618694 /* Services */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7AB4E4392D3D3F390006D052 /* VehicleService */,
|
||||
7A06E0B12C707DD7005731AC /* SettingsService */,
|
||||
7A60D24B2C5A9D2700D13F7B /* LocationService */,
|
||||
7AB5873D2C42FF4000FA7B66 /* ApiService */,
|
||||
@ -952,6 +957,15 @@
|
||||
path = ACImageSlider;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7AB4E4392D3D3F390006D052 /* VehicleService */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7AB4E43A2D3D3F4F0006D052 /* VehicleServiceProtocol.swift */,
|
||||
7AB4E43C2D3D3F7A0006D052 /* VehicleService.swift */,
|
||||
);
|
||||
path = VehicleService;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7AB587302C42D35900FA7B66 /* StorageService */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -1450,6 +1464,7 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
7AB4E43D2D3D3F7A0006D052 /* VehicleService.swift in Sources */,
|
||||
7A5D84C22C1AE5C900C2209B /* VehicleModel.swift in Sources */,
|
||||
7A5D84B92C1AD3C200C2209B /* DtoConvertible.swift in Sources */,
|
||||
7AF6D2182677C1680086EA64 /* VehicleAd.swift in Sources */,
|
||||
@ -1490,6 +1505,7 @@
|
||||
7AB4E4332D3C21C00006D052 /* FileManagerExt.swift in Sources */,
|
||||
7AB587322C42D38E00FA7B66 /* StorageServiceProtocol.swift in Sources */,
|
||||
7A3E12D72C7B42B700EE710D /* UserDefaults+Settings.swift in Sources */,
|
||||
7AB4E43B2D3D3F4F0006D052 /* VehicleServiceProtocol.swift in Sources */,
|
||||
7AA514E02D0B75B3001CAC50 /* StorageService+Events.swift in Sources */,
|
||||
7A64A2222C19E99E00284124 /* DebugInfoDto.swift in Sources */,
|
||||
7A5D84BC2C1AD81000C2209B /* VehicleOwnershipPeriod.swift in Sources */,
|
||||
|
||||
@ -5,6 +5,7 @@ import AutoCatCore
|
||||
class MainTabController: UITabBarController, UITabBarControllerDelegate {
|
||||
|
||||
var settingsCoordinator: SettingsCoordinator?
|
||||
var historyViewModel: HistoryViewModel?
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
@ -30,10 +31,11 @@ class MainTabController: UITabBarController, UITabBarControllerDelegate {
|
||||
func setupHistoryTab() {
|
||||
|
||||
let coordinator = HistoryCoordinator()
|
||||
let controller = coordinator.start()
|
||||
let (controller, viewModel) = coordinator.start()
|
||||
controller.tabBarItem = UITabBarItem(title: NSLocalizedString("History", comment: ""),
|
||||
image: UIImage(systemName: "clock.arrow.circlepath"), tag: 0)
|
||||
viewControllers?[0] = controller
|
||||
historyViewModel = viewModel
|
||||
}
|
||||
|
||||
func addSettings() async {
|
||||
@ -53,9 +55,7 @@ class MainTabController: UITabBarController, UITabBarControllerDelegate {
|
||||
}
|
||||
|
||||
func showCheckPuller() {
|
||||
guard let checkNav = viewControllers?.first as? UINavigationController,
|
||||
let checkController = checkNav.viewControllers.first as? CheckController
|
||||
else {
|
||||
guard let historyViewModel else {
|
||||
return
|
||||
}
|
||||
|
||||
@ -74,7 +74,7 @@ class MainTabController: UITabBarController, UITabBarControllerDelegate {
|
||||
newNumberController.onCheck = { number in
|
||||
SwiftEntryKit.dismiss {
|
||||
self.selectedIndex = 0
|
||||
checkController.checkTapped(number: number)
|
||||
Task { await historyViewModel.checkNewNumber(number) }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -55,6 +55,8 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
|
||||
|
||||
container.register(StorageServiceProtocol.self,
|
||||
instance: try await StorageService(settingsService: settingsService))
|
||||
|
||||
container.register(VehicleServiceProtocol.self, instance: VehicleService())
|
||||
}
|
||||
|
||||
func setupRootController(scene: UIScene) {
|
||||
|
||||
@ -15,12 +15,13 @@ final class HistoryCoordinator {
|
||||
|
||||
var navController: UINavigationController?
|
||||
|
||||
func start() -> UIViewController {
|
||||
func start() -> (UIViewController, HistoryViewModel) {
|
||||
|
||||
let resolver = ServiceContainer.shared
|
||||
let viewModel = HistoryViewModel(
|
||||
apiService: resolver.resolve(ApiServiceProtocol.self),
|
||||
storageService: resolver.resolve(StorageServiceProtocol.self),
|
||||
vehicleService: resolver.resolve(VehicleServiceProtocol.self),
|
||||
coordinator: self
|
||||
)
|
||||
|
||||
@ -30,7 +31,7 @@ final class HistoryCoordinator {
|
||||
let navController = UINavigationController(rootViewController: controller)
|
||||
self.navController = navController
|
||||
|
||||
return navController
|
||||
return (navController, viewModel)
|
||||
}
|
||||
|
||||
func openReport(vehicle: VehicleDto) async {
|
||||
|
||||
@ -15,6 +15,7 @@ final class HistoryViewModel: ACHudContainer {
|
||||
|
||||
let apiService: ApiServiceProtocol
|
||||
let storageService: StorageServiceProtocol
|
||||
let vehicleService: VehicleServiceProtocol
|
||||
let coordinator: HistoryCoordinator?
|
||||
|
||||
var hud: ACHud?
|
||||
@ -45,10 +46,12 @@ final class HistoryViewModel: ACHudContainer {
|
||||
|
||||
init(apiService: ApiServiceProtocol,
|
||||
storageService: StorageServiceProtocol,
|
||||
vehicleService: VehicleServiceProtocol,
|
||||
coordinator: HistoryCoordinator) {
|
||||
|
||||
self.apiService = apiService
|
||||
self.storageService = storageService
|
||||
self.vehicleService = vehicleService
|
||||
self.coordinator = coordinator
|
||||
|
||||
Task { await loadVehicles() }
|
||||
@ -104,4 +107,10 @@ final class HistoryViewModel: ACHudContainer {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func checkNewNumber(_ number: String) async {
|
||||
await wrapWithToast { [weak self] in
|
||||
try await self?.vehicleService.checkAndStore(number: number)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
24
AutoCatCore/Services/VehicleService/VehicleService.swift
Normal file
24
AutoCatCore/Services/VehicleService/VehicleService.swift
Normal file
@ -0,0 +1,24 @@
|
||||
//
|
||||
// VehicleService.swift
|
||||
// AutoCatCore
|
||||
//
|
||||
// Created by Selim Mustafaev on 19.01.2025.
|
||||
// Copyright © 2025 Selim Mustafaev. All rights reserved.
|
||||
//
|
||||
|
||||
public final class VehicleService {
|
||||
|
||||
public init() {}
|
||||
}
|
||||
|
||||
extension VehicleService: VehicleServiceProtocol {
|
||||
|
||||
public func check(number: String) async throws -> VehicleDto {
|
||||
|
||||
VehicleDto()
|
||||
}
|
||||
|
||||
public func checkAndStore(number: String) async throws {
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
//
|
||||
// VehicleServiceProtocol.swift
|
||||
// AutoCatCore
|
||||
//
|
||||
// Created by Selim Mustafaev on 19.01.2025.
|
||||
// Copyright © 2025 Selim Mustafaev. All rights reserved.
|
||||
//
|
||||
|
||||
public protocol VehicleServiceProtocol: Sendable {
|
||||
|
||||
func check(number: String) async throws -> VehicleDto
|
||||
func checkAndStore(number: String) async throws
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user