// import Dependencies // import Fluent // import Vapor // // // TODO: Add update route. // // struct PurchaseOrderApiController: RouteCollection { // // @Dependency(\.purchaseOrders) var purchaseOrders // // func boot(routes: any RoutesBuilder) throws { // let protected = routes.apiProtected(route: "purchase-orders") // protected.get(use: index(req:)) // protected.post(use: create(req:)) // protected.group(":id") { // $0.get(use: get(req:)) // $0.delete(use: delete(req:)) // } // } // // @Sendable // func index(req: Request) async throws -> [PurchaseOrder.DTO] { // try await purchaseOrders.fetchAll() // } // // @Sendable // func create(req: Request) async throws -> PurchaseOrder.DTO { // try await purchaseOrders.create( // req.ensureValidContent(PurchaseOrder.Create.self), // req.auth.require(User.self).requireID() // ) // } // // @Sendable // func get(req: Request) async throws -> PurchaseOrder.DTO { // guard let id = req.parameters.get("id", as: PurchaseOrder.IDValue.self), // let purchaseOrder = try await purchaseOrders.get(id) // else { // throw Abort(.notFound) // } // return purchaseOrder // } // // @Sendable // func delete(req: Request) async throws -> HTTPStatus { // guard let id = req.parameters.get("id", as: PurchaseOrder.IDValue.self) else { // throw Abort(.badRequest, reason: "Purchase order id not provided.") // } // try await purchaseOrders.delete(id) // return .ok // } // // // @Sendable // // func update(req: Request) async throws -> PurchaseOrder.DTO { // // guard let id = req.parameters.get("id", as: PurchaseOrder.IDValue.self) else { // // throw Abort(.badRequest, reason: "Purchase order id not provided.") // // } // // try await purchaseOrders.delete(id: id, on: req.db) // // return .ok // // } // }