feat: Seeing if case paths can help with base route lookup.
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
import CasePathsCore
|
||||
import CasePaths
|
||||
import Foundation
|
||||
@preconcurrency import URLRouting
|
||||
|
||||
@CasePathable
|
||||
@dynamicMemberLookup
|
||||
public enum ApiRoute: Sendable, Equatable {
|
||||
|
||||
case employee(BaseRoute.EmployeeRoute)
|
||||
case employee(EmployeeRoute)
|
||||
case purchaseOrder(BaseRoute.PurchaseOrderRoute)
|
||||
case user(BaseRoute.UserRoute)
|
||||
case vendor(BaseRoute.VendorRoute)
|
||||
@@ -15,7 +17,7 @@ public enum ApiRoute: Sendable, Equatable {
|
||||
public static let router = OneOf {
|
||||
Route(.case(Self.employee)) {
|
||||
rootPath
|
||||
BaseRoute.EmployeeRoute.router
|
||||
EmployeeRoute.router
|
||||
}
|
||||
Route(.case(Self.purchaseOrder)) {
|
||||
rootPath
|
||||
@@ -34,4 +36,21 @@ public enum ApiRoute: Sendable, Equatable {
|
||||
BaseRoute.VendorBranchRoute.router
|
||||
}
|
||||
}
|
||||
|
||||
@CasePathable
|
||||
@dynamicMemberLookup
|
||||
public enum EmployeeRoute: Sendable, Equatable {
|
||||
case base(BaseRoute.EmployeeRoute)
|
||||
case delete(id: Employee.ID)
|
||||
|
||||
public static let router = OneOf {
|
||||
Route(.case(Self.base)) {
|
||||
BaseRoute.EmployeeRoute.router
|
||||
}
|
||||
Route(.case(Self.delete(id:))) {
|
||||
Path { BaseRoute.EmployeeRoute.rootPath; UUID.parser() }
|
||||
Method.delete
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import CasePathsCore
|
||||
import CasePaths
|
||||
import Foundation
|
||||
@preconcurrency import URLRouting
|
||||
|
||||
@@ -6,9 +6,10 @@ public enum BaseRoute {}
|
||||
|
||||
public extension BaseRoute {
|
||||
|
||||
@CasePathable
|
||||
@dynamicMemberLookup
|
||||
enum EmployeeRoute: Sendable, Equatable {
|
||||
case create(Employee.Create)
|
||||
case delete(id: Employee.ID)
|
||||
case get(id: Employee.ID)
|
||||
case index
|
||||
case update(id: Employee.ID, updates: Employee.Update)
|
||||
@@ -35,10 +36,6 @@ public extension BaseRoute {
|
||||
Path { rootPath }
|
||||
Method.get
|
||||
}
|
||||
Route(.case(Self.delete(id:))) {
|
||||
Path { rootPath; UUID.parser() }
|
||||
Method.delete
|
||||
}
|
||||
Route(.case(Self.get(id:))) {
|
||||
Path { rootPath; UUID.parser() }
|
||||
Method.get
|
||||
|
||||
Reference in New Issue
Block a user