feat: Moves vendor branch views to their own files, starts to implement snapshot testing for html
This commit is contained in:
@@ -16,6 +16,7 @@ extension SharedModels.ViewRoute {
|
||||
|
||||
var middleware: [any Middleware]? {
|
||||
switch self {
|
||||
case .index: return viewProtectedMiddleware
|
||||
case let .employee(route): return route.middleware
|
||||
case .login: return nil
|
||||
case let .purchaseOrder(route): return route.middleware
|
||||
@@ -28,6 +29,9 @@ extension SharedModels.ViewRoute {
|
||||
func handle(request: Request) async throws -> any AsyncResponseEncodable {
|
||||
@Dependency(\.database.users) var users
|
||||
switch self {
|
||||
case .index:
|
||||
return request.redirect(to: Self.router.path(for: .purchaseOrder(.index)))
|
||||
|
||||
case let .employee(route):
|
||||
return try await route.handle(request: request)
|
||||
|
||||
@@ -348,6 +352,17 @@ extension SharedModels.ViewRoute.VendorBranchRoute {
|
||||
@Dependency(\.database) var database
|
||||
|
||||
switch self {
|
||||
case let .index(for: vendorID):
|
||||
guard let vendorID else {
|
||||
throw Abort(.badRequest, reason: "Vendor id not supplied")
|
||||
}
|
||||
return try await request.render {
|
||||
try await VendorBranchList(
|
||||
vendorID: vendorID,
|
||||
branches: database.vendorBranches.fetchAll(.for(vendorID: vendorID))
|
||||
)
|
||||
}
|
||||
|
||||
case let .select(context: context):
|
||||
return try await request.render {
|
||||
try await context.toHTML(branches: database.vendorBranches.fetchAllWithDetail())
|
||||
@@ -355,7 +370,7 @@ extension SharedModels.ViewRoute.VendorBranchRoute {
|
||||
|
||||
case let .create(branch):
|
||||
return try await request.render {
|
||||
try await VendorDetail.BranchRow(branch: database.vendorBranches.create(branch))
|
||||
try await VendorBranchList.Row(branch: database.vendorBranches.create(branch))
|
||||
}
|
||||
|
||||
case let .delete(id: id):
|
||||
|
||||
Reference in New Issue
Block a user