feat: WIP

This commit is contained in:
2025-03-05 07:52:47 -05:00
parent 43914716d6
commit 65f05dfc20
8 changed files with 178 additions and 179 deletions

View File

@@ -7,14 +7,14 @@ import PsychrometricClient
// swiftlint:disable type_body_length
public enum SiteRoute: Equatable, Sendable {
case api(Api)
// case api(Api)
case health
case view(View)
public static let router = OneOf {
Route(.case(Self.api)) {
Api.router
}
// Route(.case(Self.api)) {
// Api.router
// }
Route(.case(Self.health)) {
Path { "health" }
Method.get
@@ -25,74 +25,74 @@ public enum SiteRoute: Equatable, Sendable {
}
}
public extension SiteRoute {
enum Api: Equatable, Sendable {
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)
static let rootPath = Path { "api"; "v1" }
public static let router = OneOf {
Route(.case(Self.calculateAtticVentilation)) {
Path { "api"; "v1"; "calculateAtticPressure" }
Method.post
Body(.json(AtticVentilation.Request.self))
}
Route(.case(Self.calculateCapacitor)) {
Path { "api"; "v1"; "calculateRoomPressure" }
Method.post
OneOf {
Body(.json(Capacitor.Request.SizeRequest.self))
.map(.case(Capacitor.Request.size))
Body(.json(Capacitor.Request.TestRequest.self))
.map(.case(Capacitor.Request.test))
}
}
Route(.case(Self.calculateDehumidifierSize)) {
Path { "api"; "v1"; "calculateDehumidifierSize" }
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
Body(.json(HVACSystemPerformance.Request.self))
}
Route(.case(Self.calculateMoldRisk)) {
Path { "api"; "v1"; "calculateMoldRisk" }
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))
}
}
}
}
}
// public extension SiteRoute {
//
// enum Api: Equatable, Sendable {
//
// 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)
//
// static let rootPath = Path { "api"; "v1" }
//
// public static let router = OneOf {
// Route(.case(Self.calculateAtticVentilation)) {
// Path { "api"; "v1"; "calculateAtticPressure" }
// Method.post
// Body(.json(AtticVentilation.Request.self))
// }
// Route(.case(Self.calculateCapacitor)) {
// Path { "api"; "v1"; "calculateRoomPressure" }
// Method.post
// OneOf {
// Body(.json(Capacitor.Request.SizeRequest.self))
// .map(.case(Capacitor.Request.size))
// Body(.json(Capacitor.Request.TestRequest.self))
// .map(.case(Capacitor.Request.test))
// }
// }
// Route(.case(Self.calculateDehumidifierSize)) {
// Path { "api"; "v1"; "calculateDehumidifierSize" }
// 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
// Body(.json(HVACSystemPerformance.Request.self))
// }
// Route(.case(Self.calculateMoldRisk)) {
// Path { "api"; "v1"; "calculateMoldRisk" }
// 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))
// }
// }
// }
// }
// }
public extension SiteRoute {
enum View: Equatable, Sendable {