block-employee-directory/EmployeeDirectory/Services/EmployeeService.swift
Matt Bruce dc25bd490d updated to select endpoint
Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>
2025-01-20 17:39:52 -06:00

36 lines
1.0 KiB
Swift

//
// EmployeeService.swift
// EmployeeDirectory
//
// Created by Matt Bruce on 1/20/25.
//
import Foundation
/// These are the testing URL Endpoints for different states
public enum EmployeeServiceMode {
case production
case malformed
case empty
public var endpoint: String {
switch self {
case .production:
return "https://s3.amazonaws.com/sq-mobile-interview/employees.json"
case .malformed:
return "https://s3.amazonaws.com/sq-mobile-interview/employees_malformed.json"
case .empty:
return "https://s3.amazonaws.com/sq-mobile-interview/employees_empty.json"
}
}
}
/// Service Layer for Employees
public class EmployeeService: EmployeeServiceProtocol {
/// Service to get Employees
/// - Returns: Array of Employee Structs
public func getEmployees(_ serviceMode: EmployeeServiceMode = .production) async throws -> Employees {
return try await NetworkService.shared.fetchData(from: serviceMode.endpoint, as: Employees.self)
}
}