feat: Refactoring route declarations.

This commit is contained in:
2025-01-19 10:52:15 -05:00
parent d27a19863a
commit 1c8748211c
20 changed files with 954 additions and 644 deletions

View File

@@ -15,8 +15,6 @@ struct PurchaseOrderViewController: RouteCollection {
route.get(use: index)
route.get("next", use: nextPage)
route.post(use: create(req:))
// route.post("search", use: postSearch)
// route.get("search", use: getSearch)
route.group("create") {
$0.get(use: form)
}
@@ -68,26 +66,26 @@ struct PurchaseOrderViewController: RouteCollection {
return await req.render { PurchaseOrderTable.Row(purchaseOrder: purchaseOrder) }
}
@Sendable
func postSearch(req: Request) async throws -> HTMLResponse {
let context = try req.content.decode(PurchaseOrderSearchContent.self)
let results = try await purchaseOrders.search(context.toDatabaseQuery(), .init(page: 1, per: 25))
return await req.render { PurchaseOrderTable(page: results, context: .search, searchContext: nil) }
}
// @Sendable
// func postSearch(req: Request) async throws -> HTMLResponse {
// let context = try req.content.decode(PurchaseOrderSearchContent.self)
// let results = try await purchaseOrders.search(context.toDatabaseQuery(), .init(page: 1, per: 25))
// return await req.render { PurchaseOrderTable(page: results, context: .search, searchContext: nil) }
// }
// Show the form to generate a search query.
@Sendable
func getSearch(req: Request) async throws -> HTMLResponse {
// TODO: Need to handle updating the form.
return await req.render {
MainPage(displayNav: true, route: .purchaseOrders) {
div(.class("container"), .id("purchase-order-content")) {
PurchaseOrderSearch()
PurchaseOrderTable(page: .init(items: [], metadata: .init(page: 0, per: 50, total: 0)))
}
}
}
}
// @Sendable
// func getSearch(req: Request) async throws -> HTMLResponse {
// // TODO: Need to handle updating the form.
// return await req.render {
// MainPage(displayNav: true, route: .purchaseOrders) {
// div(.class("container"), .id("purchase-order-content")) {
// PurchaseOrderSearch()
// PurchaseOrderTable(page: .init(items: [], metadata: .init(page: 0, per: 50, total: 0)))
// }
// }
// }
// }
private func mainPage<C: HTML>(
_ html: C,