import DatabaseClientLive import Dependencies import Vapor // Taken from discussions page on `swift-dependencies`. // TODO: Pass dependencies to set into this middleware. struct DependenciesMiddleware: AsyncMiddleware { private let values: DependencyValues.Continuation private let database: DatabaseClient init( database: DatabaseClient ) { self.values = withEscapedDependencies { $0 } self.database = database } func respond(to request: Request, chainingTo next: any AsyncResponder) async throws -> Response { try await values.yield { try await withDependencies { $0.database = database $0.dateFormatter = .liveValue } operation: { try await next.respond(to: request) } } } }