feat: Refactoring routes to use shared / base routes.
This commit is contained in:
@@ -16,22 +16,22 @@ extension ApiRoute {
|
||||
func handle(request: Request) async throws -> any AsyncResponseEncodable {
|
||||
switch self {
|
||||
case let .employee(route):
|
||||
return try await route.handle(request: request)
|
||||
return try await route.handleApiRequest(request: request)
|
||||
case let .purchaseOrder(route):
|
||||
return try await route.handle(request: request)
|
||||
return try await route.handleApiRequest(request: request)
|
||||
case let .user(route):
|
||||
return try await route.handle(request: request)
|
||||
return try await route.handleApiRequest(request: request)
|
||||
case let .vendor(route):
|
||||
return try await route.handle(request: request)
|
||||
return try await route.handleApiRequest(request: request)
|
||||
case let .vendorBranch(route):
|
||||
return try await route.handle(request: request)
|
||||
return try await route.handleApiRequest(request: request)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension ApiRoute.EmployeeApiRoute {
|
||||
extension BaseRoute.EmployeeRoute {
|
||||
|
||||
func handle(request: Request) async throws -> any AsyncResponseEncodable {
|
||||
func handleApiRequest(request: Request) async throws -> any AsyncResponseEncodable {
|
||||
@Dependency(\.database) var database
|
||||
switch self {
|
||||
case let .create(employee):
|
||||
@@ -52,9 +52,9 @@ extension ApiRoute.EmployeeApiRoute {
|
||||
}
|
||||
}
|
||||
|
||||
extension ApiRoute.PurchaseOrderApiRoute {
|
||||
extension BaseRoute.PurchaseOrderRoute {
|
||||
|
||||
func handle(request: Request) async throws -> any AsyncResponseEncodable {
|
||||
func handleApiRequest(request: Request) async throws -> any AsyncResponseEncodable {
|
||||
@Dependency(\.database.purchaseOrders) var purchaseOrders
|
||||
switch self {
|
||||
case .index:
|
||||
@@ -76,9 +76,9 @@ extension ApiRoute.PurchaseOrderApiRoute {
|
||||
}
|
||||
|
||||
// TODO: Add Login.
|
||||
extension ApiRoute.UserApiRoute {
|
||||
extension BaseRoute.UserRoute {
|
||||
|
||||
func handle(request: Request) async throws -> any AsyncResponseEncodable {
|
||||
func handleApiRequest(request: Request) async throws -> any AsyncResponseEncodable {
|
||||
@Dependency(\.database.users) var users
|
||||
switch self {
|
||||
case let .create(user):
|
||||
@@ -101,8 +101,8 @@ extension ApiRoute.UserApiRoute {
|
||||
}
|
||||
}
|
||||
|
||||
extension ApiRoute.VendorApiRoute {
|
||||
func handle(request: Request) async throws -> any AsyncResponseEncodable {
|
||||
extension BaseRoute.VendorRoute {
|
||||
func handleApiRequest(request: Request) async throws -> any AsyncResponseEncodable {
|
||||
@Dependency(\.database.vendors) var vendors
|
||||
switch self {
|
||||
case let .create(vendor):
|
||||
@@ -126,8 +126,8 @@ extension ApiRoute.VendorApiRoute {
|
||||
}
|
||||
}
|
||||
|
||||
extension ApiRoute.VendorBranchApiRoute {
|
||||
func handle(request: Request) async throws -> any AsyncResponseEncodable {
|
||||
extension BaseRoute.VendorBranchRoute {
|
||||
func handleApiRequest(request: Request) async throws -> any AsyncResponseEncodable {
|
||||
@Dependency(\.database.vendorBranches) var vendorBranches
|
||||
switch self {
|
||||
case let .create(branch):
|
||||
|
||||
@@ -12,6 +12,7 @@ private let viewProtectedMiddleware: [any Middleware] = [
|
||||
}
|
||||
]
|
||||
|
||||
// TODO: Return `any HTML` instead to make testing the rendered documents easier.
|
||||
extension SharedModels.ViewRoute {
|
||||
|
||||
var middleware: [any Middleware]? {
|
||||
@@ -348,6 +349,31 @@ extension SharedModels.ViewRoute.VendorBranchRoute {
|
||||
|
||||
var middleware: [any Middleware]? { viewProtectedMiddleware }
|
||||
|
||||
// func html() async throws -> any HTML {
|
||||
// @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 VendorBranchList(
|
||||
// vendorID: vendorID,
|
||||
// branches: database.vendorBranches.fetchAll(.for(vendorID: vendorID))
|
||||
// )
|
||||
//
|
||||
// case let .select(context: context):
|
||||
// return try await context.toHTML(branches: database.vendorBranches.fetchAllWithDetail())
|
||||
//
|
||||
// case let .create(branch):
|
||||
// return try await VendorBranchList.Row(branch: database.vendorBranches.create(branch))
|
||||
//
|
||||
// case let .delete(id: id):
|
||||
// try await database.vendorBranches.delete(id)
|
||||
// return HTTPStatus.ok
|
||||
// }
|
||||
// }
|
||||
|
||||
func handle(request: Request) async throws -> any AsyncResponseEncodable {
|
||||
@Dependency(\.database) var database
|
||||
|
||||
|
||||
Reference in New Issue
Block a user