feat: Working on search for purchase orders.

This commit is contained in:
2025-01-17 17:04:41 -05:00
parent be0b5a6033
commit 531a385dba
46 changed files with 283 additions and 817 deletions

View File

@@ -0,0 +1,38 @@
import DatabaseClient
import Dependencies
import SharedModels
import Vapor
import VaporElementary
struct UtilsViewController: RouteCollection {
@Dependency(\.database) var database
func boot(routes: any RoutesBuilder) throws {
let route = routes.protected
route.group("select") {
$0.get("employee", use: employeeSelect(req:))
}
}
@Sendable
func employeeSelect(req: Request) async throws -> HTMLResponse {
let context = try req.query.decode(EmployeeSelectContext.self)
let employees = try await database.employees.fetchAll()
return await req.render { context.toHTML(employees: employees) }
}
}
private struct EmployeeSelectContext: Content {
let context: EmployeeSelect.Context
func toHTML(employees: [Employee]) -> EmployeeSelect {
switch context {
case .form:
return .purchaseOrderForm(employees: employees)
case .search:
return .purchaseOrderSearch(employees: employees)
}
}
}