feat: WIP
This commit is contained in:
@@ -4,58 +4,58 @@ 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)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
// 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)
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
|
||||
@@ -108,6 +108,7 @@ private extension HeatingBalancePoint.Request.Thermal {
|
||||
switch buildingHeatLoss {
|
||||
case let .known(btu: btu): return btu
|
||||
case let .estimated(squareFeet: squareFeet):
|
||||
// TODO: Should this be 65 - designTemperature
|
||||
return squareFeet * climateZone!.averageHeatLossPerSquareFoot * (70 - designTemperature)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user