feat: working on detail views.
This commit is contained in:
@@ -3,16 +3,17 @@ import Fluent
|
||||
import Vapor
|
||||
|
||||
struct PurchaseOrderViewController: RouteCollection {
|
||||
@Dependency(\.employees) var employees
|
||||
@Dependency(\.purchaseOrders) var purchaseOrders
|
||||
|
||||
private let employeesApi = EmployeeApiController()
|
||||
private let branches = VendorBranchDB()
|
||||
private let api = ApiController()
|
||||
@Dependency(\.vendorBranches) var vendorBranches
|
||||
|
||||
func boot(routes: any RoutesBuilder) throws {
|
||||
let pos = routes.protected.grouped("purchase-orders")
|
||||
|
||||
pos.get(use: index(req:))
|
||||
pos.group("details", "close") {
|
||||
$0.get(use: detailClose(req:))
|
||||
}
|
||||
pos.post(use: create(req:))
|
||||
pos.group(":id") {
|
||||
$0.get(use: detail(req:))
|
||||
@@ -25,8 +26,8 @@ struct PurchaseOrderViewController: RouteCollection {
|
||||
let purchaseOrdersPage = try await purchaseOrders.fetchPage(
|
||||
.init(page: params?.page ?? 1, per: params?.limit ?? 50)
|
||||
)
|
||||
let branches = try await self.branches.getBranches(req: req)
|
||||
let employees = try await employeesApi.index(req: req)
|
||||
let branches = try await vendorBranches.getBranches(req: req)
|
||||
let employees = try await employees.fetchAll()
|
||||
req.logger.debug("Branches: \(branches)")
|
||||
return try await req.view.render(
|
||||
"purchaseOrders/index",
|
||||
@@ -43,7 +44,12 @@ struct PurchaseOrderViewController: RouteCollection {
|
||||
throw Abort(.badRequest, reason: "Id not supplied.")
|
||||
}
|
||||
let purchaseOrder = try await purchaseOrders.get(id)
|
||||
return try await req.view.render("purchaseOrders/detail", ["purchaseOrder": purchaseOrder])
|
||||
return try await req.view.render("purchaseOrders/detail", ["purchaseOrderDetail": purchaseOrder])
|
||||
}
|
||||
|
||||
@Sendable
|
||||
func detailClose(req: Request) async throws -> View {
|
||||
return try await req.view.render("purchaseOrders/detail")
|
||||
}
|
||||
|
||||
@Sendable
|
||||
@@ -62,6 +68,7 @@ private struct PurchaseOrderIndex: Content {
|
||||
}
|
||||
|
||||
private struct PurchaseOrderCTX: Content {
|
||||
let purchaseOrderDetail: PurchaseOrder.DTO?
|
||||
let purchaseOrders: [PurchaseOrder.DTO]
|
||||
let page: Int
|
||||
let limit: Int
|
||||
@@ -69,7 +76,12 @@ private struct PurchaseOrderCTX: Content {
|
||||
let hasPrevious: Bool
|
||||
let form: PurchaseOrderFormCTX?
|
||||
|
||||
init(page: Page<PurchaseOrder.DTO>, form: PurchaseOrderFormCTX?) {
|
||||
init(
|
||||
detail: PurchaseOrder.DTO? = nil,
|
||||
page: Page<PurchaseOrder.DTO>,
|
||||
form: PurchaseOrderFormCTX?
|
||||
) {
|
||||
self.purchaseOrderDetail = detail
|
||||
self.purchaseOrders = page.items
|
||||
self.page = page.metadata.page
|
||||
self.limit = page.metadata.per
|
||||
|
||||
Reference in New Issue
Block a user