feat: Moves vendor branch views to their own files, starts to implement snapshot testing for html

This commit is contained in:
2025-01-21 09:51:11 -05:00
parent 40726c8bd7
commit 97b231767e
15 changed files with 231 additions and 71 deletions

View File

@@ -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):