feat: Begins htmx integration
This commit is contained in:
@@ -4,10 +4,10 @@ import PsychrometricClient
|
||||
public enum MoldRisk {
|
||||
public struct Request: Codable, Equatable, Sendable {
|
||||
|
||||
public let temperature: DryBulb
|
||||
public let humidity: RelativeHumidity
|
||||
public let temperature: Double
|
||||
public let humidity: Double
|
||||
|
||||
public init(temperature: DryBulb, humidity: RelativeHumidity) {
|
||||
public init(temperature: Double, humidity: Double) {
|
||||
self.temperature = temperature
|
||||
self.humidity = humidity
|
||||
}
|
||||
@@ -41,6 +41,15 @@ public enum MoldRisk {
|
||||
}
|
||||
}
|
||||
|
||||
public extension MoldRisk.Request {
|
||||
|
||||
var dryBulb: DryBulb {
|
||||
.fahrenheit(temperature)
|
||||
}
|
||||
|
||||
var relativeHumidity: RelativeHumidity { humidity% }
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
import Dependencies
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import CasePaths
|
||||
import Foundation
|
||||
import PsychrometricClient
|
||||
@preconcurrency import URLRouting
|
||||
|
||||
public enum SiteRoute: Equatable, Sendable {
|
||||
@@ -52,6 +53,7 @@ public extension SiteRoute {
|
||||
|
||||
public enum MoldRisk: Equatable, Sendable {
|
||||
case index
|
||||
case submit(Routes.MoldRisk.Request)
|
||||
|
||||
static let rootPath = "mold-risk"
|
||||
|
||||
@@ -60,6 +62,22 @@ public extension SiteRoute {
|
||||
Path { rootPath }
|
||||
Method.get
|
||||
}
|
||||
|
||||
Route(.case(Self.submit)) {
|
||||
Path { rootPath }
|
||||
Method.post
|
||||
Body {
|
||||
FormData {
|
||||
Field("temperature") {
|
||||
Double.parser()
|
||||
}
|
||||
Field("humidity") {
|
||||
Double.parser()
|
||||
}
|
||||
}
|
||||
.map(.memberwise(Routes.MoldRisk.Request.init))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user