feat: Refactors / renames some modules.

This commit is contained in:
2025-02-26 08:27:39 -05:00
parent 30cfde9f30
commit cce99ce5e9
12 changed files with 32 additions and 53 deletions

View File

@@ -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]

View File

@@ -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)
}
})
}
}

View File

@@ -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)

View File

@@ -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`.

View File

@@ -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()
}
})
}
}

View File

@@ -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()
}
})
}
}