feat: Initial filter pressure drop views, calculations need implemented.
This commit is contained in:
@@ -13,6 +13,10 @@ public enum SiteRoute: Equatable, Sendable {
|
||||
Route(.case(Self.api)) {
|
||||
Api.router
|
||||
}
|
||||
Route(.case(Self.health)) {
|
||||
Path { "health" }
|
||||
Method.get
|
||||
}
|
||||
Route(.case(Self.view)) {
|
||||
View.router
|
||||
}
|
||||
@@ -26,6 +30,7 @@ public extension SiteRoute {
|
||||
case calculateAtticVentilation(AtticVentilation.Request)
|
||||
case calculateCapacitor(Capacitor.Request)
|
||||
case calculateDehumidifierSize(DehumidifierSize.Request)
|
||||
case calculateFilterPressureDrop(FilterPressureDrop.Request)
|
||||
case calculateHVACSystemPerformance(HVACSystemPerformance.Request)
|
||||
case calculateMoldRisk(MoldRisk.Request)
|
||||
case calculateRoomPressure(RoomPressure.Request)
|
||||
@@ -53,6 +58,16 @@ public extension SiteRoute {
|
||||
Method.post
|
||||
Body(.json(DehumidifierSize.Request.self))
|
||||
}
|
||||
Route(.case(Self.calculateFilterPressureDrop)) {
|
||||
Path { "api"; "v1"; "calculateFilterPressureDrop" }
|
||||
Method.post
|
||||
OneOf {
|
||||
Body(.json(FilterPressureDrop.Request.Basic.self))
|
||||
.map(.case(FilterPressureDrop.Request.basic))
|
||||
Body(.json(FilterPressureDrop.Request.FanLaw.self))
|
||||
.map(.case(FilterPressureDrop.Request.fanLaw))
|
||||
}
|
||||
}
|
||||
Route(.case(Self.calculateHVACSystemPerformance)) {
|
||||
Path { "api"; "v1"; "calculateHVACSystemPerformance" }
|
||||
Method.post
|
||||
@@ -84,6 +99,7 @@ public extension SiteRoute {
|
||||
case atticVentilation(AtticVentilation)
|
||||
case capacitor(Capacitor)
|
||||
case dehumidifierSize(DehumidifierSize)
|
||||
case filterPressureDrop(FilterPressureDrop)
|
||||
case hvacSystemPerformance(HVACSystemPerformance)
|
||||
case moldRisk(MoldRisk)
|
||||
case roomPressure(RoomPressure)
|
||||
@@ -101,6 +117,9 @@ public extension SiteRoute {
|
||||
Route(.case(Self.dehumidifierSize)) {
|
||||
DehumidifierSize.router
|
||||
}
|
||||
Route(.case(Self.filterPressureDrop)) {
|
||||
FilterPressureDrop.router
|
||||
}
|
||||
Route(.case(Self.hvacSystemPerformance)) {
|
||||
HVACSystemPerformance.router
|
||||
}
|
||||
@@ -213,6 +232,53 @@ public extension SiteRoute {
|
||||
}
|
||||
}
|
||||
|
||||
public enum FilterPressureDrop: Equatable, Sendable {
|
||||
case index(mode: Routes.FilterPressureDrop.Mode? = nil)
|
||||
case submit(Routes.FilterPressureDrop.Request)
|
||||
|
||||
public static let index = Self.index()
|
||||
|
||||
static let rootPath = "filter-pressure-drop"
|
||||
|
||||
public static let router = OneOf {
|
||||
Route(.case(Self.index)) {
|
||||
Path { rootPath }
|
||||
Method.get
|
||||
Query {
|
||||
Optionally { Field("mode") { Routes.FilterPressureDrop.Mode.parser() } }
|
||||
}
|
||||
}
|
||||
Route(.case(Self.submit)) {
|
||||
Path { rootPath }
|
||||
Method.post
|
||||
Body {
|
||||
OneOf {
|
||||
FormData {
|
||||
Field("systemSize") { Double.parser() }
|
||||
Field("climateZone") { ClimateZone.parser() }
|
||||
Field("filterType") { Routes.FilterPressureDrop.FilterType.parser() }
|
||||
Field("filterWidth") { Double.parser() }
|
||||
Field("filterHeight") { Double.parser() }
|
||||
}
|
||||
.map(.memberwise(Routes.FilterPressureDrop.Request.Basic.init))
|
||||
.map(.case(Routes.FilterPressureDrop.Request.basic))
|
||||
|
||||
FormData {
|
||||
Field("filterWidth") { Double.parser() }
|
||||
Field("filterHeight") { Double.parser() }
|
||||
Field("filterDepth") { Double.parser() }
|
||||
Field("ratedAirflow") { Double.parser() }
|
||||
Field("ratedPressureDrop") { Double.parser() }
|
||||
Field("designAirflow") { Double.parser() }
|
||||
}
|
||||
.map(.memberwise(Routes.FilterPressureDrop.Request.FanLaw.init))
|
||||
.map(.case(Routes.FilterPressureDrop.Request.fanLaw))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum HVACSystemPerformance: Equatable, Sendable {
|
||||
case index
|
||||
case submit(Routes.HVACSystemPerformance.Request)
|
||||
|
||||
Reference in New Issue
Block a user