Files
vapor-po/Sources/App/routes.swift

57 lines
1.1 KiB
Swift

import CasePathsCore
import DatabaseClientLive
import Dependencies
import Elementary
import ElementaryHTMX
import Fluent
import SharedModels
import Vapor
import VaporElementary
@preconcurrency import VaporRouting
func routes(_ app: Application) throws {
app.mount(
SiteRoute.router,
middleware: { route in
switch route {
case let .api(route):
return route.middleware
case .health:
return nil
case let .view(route):
return route.middleware
}
},
use: siteHandler
)
app.get { _ in
HTMLResponse {
MainPage(displayNav: false, route: .purchaseOrders) {
div(.class("container")) {
h1 { "iT WORKS" }
}
}
}
}
}
private struct LoginContext: Content {
let next: String?
}
@Sendable
func siteHandler(
request: Request,
route: SiteRoute
) async throws -> any AsyncResponseEncodable {
switch route {
case let .api(route):
return try await route.handle(request: request)
case .health:
return HTTPStatus.ok
case let .view(route):
return try await route.handle(request: request)
}
}