feat: Seeing if case paths can help with base route lookup.

This commit is contained in:
2025-01-21 17:12:17 -05:00
parent 66074d66f4
commit 497355ce1f
6 changed files with 55 additions and 32 deletions

View File

@@ -29,25 +29,30 @@ extension ApiRoute {
}
}
extension BaseRoute.EmployeeRoute {
extension ApiRoute.EmployeeRoute {
func handleApiRequest(request: Request) async throws -> any AsyncResponseEncodable {
@Dependency(\.database) var database
switch self {
case let .create(employee):
return try await database.employees.create(employee)
case let .delete(id: id):
try await database.employees.delete(id)
return HTTPStatus.ok
case .index:
return try await database.employees.fetchAll()
case let .get(id: id):
guard let employee = try await database.employees.get(id) else {
throw Abort(.badRequest, reason: "Employee not found")
case let .base(route):
switch route {
case let .create(employee):
return try await database.employees.create(employee)
case .index:
return try await database.employees.fetchAll()
case let .get(id: id):
guard let employee = try await database.employees.get(id) else {
throw Abort(.badRequest, reason: "Employee not found")
}
return employee
case let .update(id: id, updates: updates):
return try await database.employees.update(id, updates)
}
return employee
case let .update(id: id, updates: updates):
return try await database.employees.update(id, updates)
}
}
}