feat: Refactors / renames some modules.
This commit is contained in:
@@ -9,10 +9,8 @@ let package = Package(
|
||||
products: [
|
||||
.executable(name: "App", targets: ["App"]),
|
||||
.library(name: "ApiController", targets: ["ApiController"]),
|
||||
.library(name: "ApiControllerLive", targets: ["ApiControllerLive"]),
|
||||
.library(name: "Routes", targets: ["Routes"]),
|
||||
.library(name: "ViewController", targets: ["ViewController"]),
|
||||
.library(name: "ViewControllerLive", targets: ["ViewControllerLive"])
|
||||
.library(name: "ViewController", targets: ["ViewController"])
|
||||
],
|
||||
dependencies: [
|
||||
// 💧 A server-side Swift web framework.
|
||||
@@ -33,8 +31,8 @@ let package = Package(
|
||||
.executableTarget(
|
||||
name: "App",
|
||||
dependencies: [
|
||||
"ViewControllerLive",
|
||||
"ApiControllerLive",
|
||||
"ApiController",
|
||||
"ViewController",
|
||||
.product(name: "Vapor", package: "vapor"),
|
||||
.product(name: "NIOCore", package: "swift-nio"),
|
||||
.product(name: "NIOPosix", package: "swift-nio"),
|
||||
@@ -60,13 +58,6 @@ let package = Package(
|
||||
],
|
||||
swiftSettings: swiftSettings
|
||||
),
|
||||
.target(
|
||||
name: "ApiControllerLive",
|
||||
dependencies: [
|
||||
"ApiController"
|
||||
],
|
||||
swiftSettings: swiftSettings
|
||||
),
|
||||
.target(
|
||||
name: "Routes",
|
||||
dependencies: [
|
||||
@@ -85,13 +76,6 @@ let package = Package(
|
||||
.product(name: "Elementary", package: "elementary")
|
||||
],
|
||||
swiftSettings: swiftSettings
|
||||
),
|
||||
.target(
|
||||
name: "ViewControllerLive",
|
||||
dependencies: [
|
||||
"ViewController"
|
||||
],
|
||||
swiftSettings: swiftSettings
|
||||
)
|
||||
],
|
||||
swiftLanguageModes: [.v5]
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import Dependencies
|
||||
import DependenciesMacros
|
||||
import Logging
|
||||
import PsychrometricClient
|
||||
import Routes
|
||||
|
||||
public extension DependencyValues {
|
||||
@@ -18,3 +19,17 @@ public struct ApiController: Sendable {
|
||||
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
|
||||
switch route {
|
||||
case let .calculateMoldRisk(request):
|
||||
logger.info("Calculating mold risk: \(request)")
|
||||
return try await psychrometricClient.respond(request, logger)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,30 +1,14 @@
|
||||
@_exported import ApiController
|
||||
import Dependencies
|
||||
import Logging
|
||||
import PsychrometricClient
|
||||
import Routes
|
||||
|
||||
extension ApiController: DependencyKey {
|
||||
public static var liveValue: ApiController {
|
||||
@Dependency(\.psychrometricClient) var psychrometricClient
|
||||
|
||||
return .init(json: { route, logger in
|
||||
switch route {
|
||||
case let .calculateMoldRisk(request):
|
||||
logger.info("Calculating mold risk: \(request)")
|
||||
return try await psychrometricClient.resond(request, logger)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
private extension PsychrometricClient {
|
||||
extension PsychrometricClient {
|
||||
|
||||
private func calculateProperties(_ request: MoldRisk.Request) async throws -> PsychrometricProperties {
|
||||
try await psychrometricProperties(.dryBulb(request.temperature, relativeHumidity: request.humidity))
|
||||
}
|
||||
|
||||
func resond(_ request: MoldRisk.Request, _ logger: Logger) async throws -> MoldRisk.Response {
|
||||
func respond(_ request: MoldRisk.Request, _ logger: Logger) async throws -> MoldRisk.Response {
|
||||
let properties = try await calculateProperties(request)
|
||||
let riskLevel = MoldRisk.RiskLevel(humidity: request.humidity)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import ApiControllerLive
|
||||
import ApiController
|
||||
import Dependencies
|
||||
import PsychrometricClientLive
|
||||
import Vapor
|
||||
import ViewControllerLive
|
||||
import ViewController
|
||||
|
||||
// Taken from discussions page on `swift-dependencies`.
|
||||
|
||||
|
||||
@@ -20,3 +20,13 @@ public struct ViewController: Sendable {
|
||||
extension ViewController: TestDependencyKey {
|
||||
public static let testValue: ViewController = Self()
|
||||
}
|
||||
|
||||
extension ViewController: DependencyKey {
|
||||
public static var liveValue: ViewController {
|
||||
.init(view: { _ in
|
||||
MainPage {
|
||||
MoldRiskForm()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
import Dependencies
|
||||
import Elementary
|
||||
import Routes
|
||||
@_exported import ViewController
|
||||
|
||||
extension ViewController: DependencyKey {
|
||||
public static var liveValue: ViewController {
|
||||
.init(view: { _ in
|
||||
MainPage {
|
||||
MoldRiskForm()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user