added code for a network service

Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>
This commit is contained in:
Matt Bruce 2025-03-14 16:50:37 -05:00
parent b2ce994cea
commit 12ff7b0e8a

View File

@ -43,4 +43,24 @@ public class EmployeeService: EmployeeServiceProtocol {
}
}
public class Networkservice {
public static let shared = Networkservice()
public init(){}
public func fetch<T: Decodable>(endpoint: String, type: T.Type) async throws -> T {
guard let url = URL(string: endpoint) else {
throw URLError(.badURL)
}
let (data, response) = try await URLSession.shared.data(from: url)
guard let httpResponse = response as? HTTPURLResponse,
200..<300 ~= httpResponse.statusCode else {
throw URLError(.badServerResponse)
}
return try JSONDecoder().decode(T.self, from: data)
}
}