From 069cc8c06a9f38df4e1846d4164a09407e7ba36b Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Tue, 21 Jan 2025 09:14:15 -0600 Subject: [PATCH] commented the code and refactored to new shared. Signed-off-by: Matt Bruce --- .../ViewModels/EmployeesViewModel.swift | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/EmployeeDirectory/ViewModels/EmployeesViewModel.swift b/EmployeeDirectory/ViewModels/EmployeesViewModel.swift index 919cc62..796b422 100644 --- a/EmployeeDirectory/ViewModels/EmployeesViewModel.swift +++ b/EmployeeDirectory/ViewModels/EmployeesViewModel.swift @@ -7,18 +7,17 @@ import Foundation +/// ViewModel that will be bound to an Employees model and used +/// specifically with the EmployeesViewController. @MainActor public class EmployeesViewModel: ObservableObject { - private let service: EmployeeService private var serviceMode: EmployeeServiceMode = .production @Published public private(set) var employees: [Employee] = [] @Published public private(set) var errorMessage: String? = nil @Published public private(set) var isLoading: Bool = false - public init(service: EmployeeService = EmployeeService()) { - self.service = service - } + public init() {} public func fetchEmployees() { // resetting values out the values before fetching new data @@ -28,17 +27,17 @@ public class EmployeesViewModel: ObservableObject { Task { do { // Fetch employees using the async method - let wrapper = try await service.getEmployees(serviceMode) + let wrapper = try await EmployeeService.shared.getEmployees(serviceMode) // Update published properties - self.employees = wrapper.employees - self.isLoading = false + employees = wrapper.employees + isLoading = false } catch { // Handle errors - self.employees = [] - self.isLoading = false - self.errorMessage = "An unexpected error occurred, please try to refresh" + employees = [] + isLoading = false + errorMessage = "An unexpected error occurred, please try to refresh" } }