updated naming

Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>
This commit is contained in:
Matt Bruce 2025-01-21 12:16:55 -06:00
parent 95cbafec57
commit da6e68c219

View File

@ -9,7 +9,7 @@ import Foundation
public class MockEmployeeService: EmployeeServiceProtocol {
// MARK: - Properties
public static let shared = MockEmployeeService() // Default shared instance
private var employees: Employees
private var wrapper: Employees
private var sortField: EmployeeSortField = .fullName
private var sortOrder: EmployeeSortOrder = .ascending
@ -20,14 +20,14 @@ public class MockEmployeeService: EmployeeServiceProtocol {
guard let url = Bundle.main.url(forResource: jsonFileName, withExtension: "json"),
let data = try? Data(contentsOf: url),
let localData = try? JSONDecoder().decode(Employees.self, from: data) else {
employees = .init(employees: [], total: 0, page: 0, perPage: 0)
wrapper = .init(employees: [], total: 0, page: 0, perPage: 0)
return
}
employees = localData
wrapper = localData
}
public func getEmployees(_ serviceMode: EmployeeServiceMode) async throws -> Employees {
return employees
return wrapper
}
public func getEmployees(_ serviceMode: EmployeeServiceMode = .production,
@ -35,24 +35,27 @@ public class MockEmployeeService: EmployeeServiceProtocol {
sortField: EmployeeSortField = .fullName,
sortOrder: EmployeeSortOrder = .ascending) async throws -> Employees {
//resort mock data
if sortField != self.sortField || sortOrder != self.sortOrder {
employees = .init(employees: employees.employees.sorted(by: sortField, with: sortOrder),
total: employees.employees.count,
wrapper = .init(employees: wrapper.employees.sorted(by: sortField, with: sortOrder),
total: wrapper.employees.count,
page: page,
perPage: perPage)
self.sortField = sortField
self.sortOrder = sortOrder
}
let totalUsers = employees.employees.count
let totalUsers = wrapper.employees.count
let startIndex = (page - 1) * perPage
let endIndex = min(startIndex + perPage, totalUsers)
guard startIndex < totalUsers else {
return .init(employees: [], total: totalUsers, page: page, perPage: perPage) // Return empty if out of bounds
}
let paginatedUsers = Array(employees.employees[startIndex..<endIndex])
return .init(employees: paginatedUsers, total: totalUsers, page: page, perPage: perPage)
//paged
let pagedEmployees = Array(wrapper.employees[startIndex..<endIndex])
return .init(employees: pagedEmployees, total: totalUsers, page: page, perPage: perPage)
}
}