commented the code and refactored to new shared.
Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>
This commit is contained in:
parent
c127a6c465
commit
069cc8c06a
@ -7,18 +7,17 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
|
/// ViewModel that will be bound to an Employees model and used
|
||||||
|
/// specifically with the EmployeesViewController.
|
||||||
@MainActor
|
@MainActor
|
||||||
public class EmployeesViewModel: ObservableObject {
|
public class EmployeesViewModel: ObservableObject {
|
||||||
private let service: EmployeeService
|
|
||||||
private var serviceMode: EmployeeServiceMode = .production
|
private var serviceMode: EmployeeServiceMode = .production
|
||||||
|
|
||||||
@Published public private(set) var employees: [Employee] = []
|
@Published public private(set) var employees: [Employee] = []
|
||||||
@Published public private(set) var errorMessage: String? = nil
|
@Published public private(set) var errorMessage: String? = nil
|
||||||
@Published public private(set) var isLoading: Bool = false
|
@Published public private(set) var isLoading: Bool = false
|
||||||
|
|
||||||
public init(service: EmployeeService = EmployeeService()) {
|
public init() {}
|
||||||
self.service = service
|
|
||||||
}
|
|
||||||
|
|
||||||
public func fetchEmployees() {
|
public func fetchEmployees() {
|
||||||
// resetting values out the values before fetching new data
|
// resetting values out the values before fetching new data
|
||||||
@ -28,17 +27,17 @@ public class EmployeesViewModel: ObservableObject {
|
|||||||
Task {
|
Task {
|
||||||
do {
|
do {
|
||||||
// Fetch employees using the async method
|
// Fetch employees using the async method
|
||||||
let wrapper = try await service.getEmployees(serviceMode)
|
let wrapper = try await EmployeeService.shared.getEmployees(serviceMode)
|
||||||
|
|
||||||
// Update published properties
|
// Update published properties
|
||||||
self.employees = wrapper.employees
|
employees = wrapper.employees
|
||||||
self.isLoading = false
|
isLoading = false
|
||||||
|
|
||||||
} catch {
|
} catch {
|
||||||
// Handle errors
|
// Handle errors
|
||||||
self.employees = []
|
employees = []
|
||||||
self.isLoading = false
|
isLoading = false
|
||||||
self.errorMessage = "An unexpected error occurred, please try to refresh"
|
errorMessage = "An unexpected error occurred, please try to refresh"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user