import Dependencies import DependenciesMacros import Logging import PsychrometricClient import Routes // public extension DependencyValues { // var apiController: ApiController { // get { self[ApiController.self] } // set { self[ApiController.self] = newValue } // } // } // // @DependencyClient // public struct ApiController: Sendable { // public var json: @Sendable (SiteRoute.Api, Logger) async throws -> (any Encodable)? // } // // extension ApiController: TestDependencyKey { // public static let testValue: ApiController = Self() // } // // extension ApiController: DependencyKey { // public static var liveValue: ApiController { // @Dependency(\.psychrometricClient) var psychrometricClient // // return .init(json: { route, logger in // logger.debug("API Route: \(route)") // // switch route { // case let .calculateAtticVentilation(request): // logger.debug("Calculating attic ventilation: \(request)") // return try await request.respond(logger: logger) // // case let .calculateCapacitor(request): // logger.debug("Calculating capacitor: \(request)") // return try await request.respond(logger: logger) // // case let .calculateDehumidifierSize(request): // logger.debug("Calculating dehumidifier size: \(request)") // return try await request.respond(logger) // // case let .calculateFilterPressureDrop(request): // logger.debug("Calculating filter pressure drop: \(request)") // return try await request.respond(logger: logger) // // case let .calculateHVACSystemPerformance(request): // logger.debug("Calculating hvac system performance: \(request)") // return try await request.respond(logger: logger) // // case let .calculateMoldRisk(request): // logger.debug("Calculating mold risk: \(request)") // return try await psychrometricClient.respond(request, logger) // // case let .calculateRoomPressure(request): // logger.debug("Calculating room pressure: \(request)") // return try await request.respond(logger: logger) // } // }) // } // }