feat: Begins room pressure calculations
This commit is contained in:
@@ -119,7 +119,7 @@ public enum RoomPressure {
|
||||
case ten = 10
|
||||
case twelve = 12
|
||||
case fourteen = 14
|
||||
case twenty = 20
|
||||
// case twenty = 20
|
||||
|
||||
public var label: String { "\(rawValue)\"" }
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ public extension SiteRoute {
|
||||
case calculateDehumidifierSize(DehumidifierSize.Request)
|
||||
case calculateHVACSystemPerformance(HVACSystemPerformance.Request)
|
||||
case calculateMoldRisk(MoldRisk.Request)
|
||||
case calculateRoomPressure(RoomPressure.Request)
|
||||
|
||||
static let rootPath = Path { "api"; "v1" }
|
||||
|
||||
@@ -45,6 +46,16 @@ public extension SiteRoute {
|
||||
Method.post
|
||||
Body(.json(MoldRisk.Request.self))
|
||||
}
|
||||
Route(.case(Self.calculateRoomPressure)) {
|
||||
Path { "api"; "v1"; "calculateRoomPressure" }
|
||||
Method.post
|
||||
OneOf {
|
||||
Body(.json(RoomPressure.Request.KnownAirflow.self))
|
||||
.map(.case(RoomPressure.Request.knownAirflow))
|
||||
Body(.json(RoomPressure.Request.MeasuredPressure.self))
|
||||
.map(.case(RoomPressure.Request.measuredPressure))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -164,6 +175,7 @@ public extension SiteRoute {
|
||||
|
||||
public enum RoomPressure: Equatable, Sendable {
|
||||
case index(mode: Routes.RoomPressure.Mode? = nil)
|
||||
case submit(Routes.RoomPressure.Request)
|
||||
|
||||
public static var index: Self { .index() }
|
||||
|
||||
@@ -177,6 +189,38 @@ public extension SiteRoute {
|
||||
Optionally { Field("form") { Routes.RoomPressure.Mode.parser() } }
|
||||
}
|
||||
}
|
||||
Route(.case(Self.submit)) {
|
||||
Path { rootPath }
|
||||
Method.post
|
||||
Body {
|
||||
OneOf {
|
||||
FormData {
|
||||
Field("targetRoomPressure") { Double.parser() }
|
||||
Field("doorWidth") { Double.parser() }
|
||||
Field("doorHeight") { Double.parser() }
|
||||
Field("doorUndercut") { Double.parser() }
|
||||
Field("supplyAirflow") { Double.parser() }
|
||||
Field("preferredGrilleHeight") {
|
||||
Routes.RoomPressure.CommonReturnGrilleHeight.parser()
|
||||
}
|
||||
}
|
||||
.map(.memberwise(Routes.RoomPressure.Request.KnownAirflow.init))
|
||||
.map(.case(Routes.RoomPressure.Request.knownAirflow))
|
||||
|
||||
FormData {
|
||||
Field("measuredRoomPressure") { Double.parser() }
|
||||
Field("doorWidth") { Double.parser() }
|
||||
Field("doorHeight") { Double.parser() }
|
||||
Field("doorUndercut") { Double.parser() }
|
||||
Field("preferredGrilleHeight") {
|
||||
Routes.RoomPressure.CommonReturnGrilleHeight.parser()
|
||||
}
|
||||
}
|
||||
.map(.memberwise(Routes.RoomPressure.Request.MeasuredPressure.init))
|
||||
.map(.case(Routes.RoomPressure.Request.measuredPressure))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user