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" } }