import DatabaseClient import Hummingbird import HummingbirdFluent import SharedModels struct UserController { let db: DatabaseClient.Users func addRoutes(to group: RouterGroup) { group.get(use: list) .post(use: create) } @Sendable func list(_ request: Request, context: Context) async throws -> [User] { try await db.fetchAll() } @Sendable func create(_ request: Request, context: Context) async throws -> User { let create = try await request.decode(as: User.Create.self, context: context) let user = try await db.create(create) return user } } extension User.Create: ResponseCodable {} extension User: ResponseCodable {}