feat: Implements common database interactions as dependencies.
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
import Dependencies
|
||||
import Fluent
|
||||
import Vapor
|
||||
|
||||
struct PurchaseOrderViewController: RouteCollection {
|
||||
@Dependency(\.purchaseOrders) var purchaseOrders
|
||||
|
||||
private let employeesApi = EmployeeApiController()
|
||||
private let branches = VendorBranchDB()
|
||||
private let api = ApiController()
|
||||
private let api2 = PurchaseOrderDB()
|
||||
|
||||
func boot(routes: any RoutesBuilder) throws {
|
||||
let pos = routes.protected.grouped("purchase-orders")
|
||||
@@ -20,7 +22,9 @@ struct PurchaseOrderViewController: RouteCollection {
|
||||
@Sendable
|
||||
func index(req: Request) async throws -> View {
|
||||
let params = try? req.query.decode(PurchaseOrderIndex.self)
|
||||
let purchaseOrdersPage = try await api2.fetchPage(params?.page ?? 1, limit: params?.limit ?? 50, on: req.db)
|
||||
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)
|
||||
req.logger.debug("Branches: \(branches)")
|
||||
@@ -38,7 +42,7 @@ struct PurchaseOrderViewController: RouteCollection {
|
||||
guard let id = req.parameters.get("id", as: PurchaseOrder.IDValue.self) else {
|
||||
throw Abort(.badRequest, reason: "Id not supplied.")
|
||||
}
|
||||
let purchaseOrder = try await api2.get(id: id, on: req.db)
|
||||
let purchaseOrder = try await purchaseOrders.get(id)
|
||||
return try await req.view.render("purchaseOrders/detail", ["purchaseOrder": purchaseOrder])
|
||||
}
|
||||
|
||||
@@ -47,7 +51,7 @@ struct PurchaseOrderViewController: RouteCollection {
|
||||
try PurchaseOrder.FormCreate.validate(content: req)
|
||||
let createdById = try req.auth.require(User.self).requireID()
|
||||
let create = try req.content.decode(PurchaseOrder.FormCreate.self).toCreate()
|
||||
let purchaseOrder = try await api2.create(create, createdById: createdById, on: req.db)
|
||||
let purchaseOrder = try await purchaseOrders.create(create, createdById)
|
||||
return try await req.view.render("purchaseOrders/table-row", purchaseOrder)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user