feat: Refactoring route declarations.
This commit is contained in:
@@ -14,15 +14,15 @@ public extension DependencyValues {
|
||||
public struct ApiController: Sendable {
|
||||
public var json: @Sendable (Request) async throws -> (any Encodable)?
|
||||
|
||||
public func json(_ route: ApiRoute, logger: Logger) async throws -> (any Encodable)? {
|
||||
public func json(_ route: SiteRoute.Api, logger: Logger) async throws -> (any Encodable)? {
|
||||
try await json(.init(route, logger: logger))
|
||||
}
|
||||
|
||||
public struct Request: Sendable {
|
||||
public let route: ApiRoute
|
||||
public let route: SiteRoute.Api
|
||||
public let logger: Logger
|
||||
|
||||
public init(_ route: ApiRoute, logger: Logger) {
|
||||
public init(_ route: SiteRoute.Api, logger: Logger) {
|
||||
self.route = route
|
||||
self.logger = logger
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ private struct TokenResponse: Encodable {
|
||||
|
||||
}
|
||||
|
||||
private extension ApiRoute.EmployeeRoute {
|
||||
private extension SiteRoute.Api.EmployeeRoute {
|
||||
|
||||
func handleApiRequest(logger: Logger) async throws -> (any Encodable)? {
|
||||
@Dependency(\.database) var database
|
||||
@@ -66,7 +66,7 @@ private extension ApiRoute.EmployeeRoute {
|
||||
}
|
||||
}
|
||||
|
||||
private extension ApiRoute.PurchaseOrderRoute {
|
||||
private extension SiteRoute.Api.PurchaseOrderRoute {
|
||||
|
||||
func handleApiRequest(logger: Logger) async throws -> (any Encodable)? {
|
||||
@Dependency(\.database.purchaseOrders) var purchaseOrders
|
||||
@@ -90,8 +90,7 @@ private extension ApiRoute.PurchaseOrderRoute {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Add Login.
|
||||
private extension ApiRoute.UserRoute {
|
||||
private extension SiteRoute.Api.UserRoute {
|
||||
|
||||
func handleApiRequest(logger: Logger) async throws -> (any Encodable)? {
|
||||
@Dependency(\.database.users) var users
|
||||
@@ -117,7 +116,7 @@ private extension ApiRoute.UserRoute {
|
||||
}
|
||||
}
|
||||
|
||||
private extension ApiRoute.VendorRoute {
|
||||
private extension SiteRoute.Api.VendorRoute {
|
||||
func handleApiRequest(logger: Logger) async throws -> (any Encodable)? {
|
||||
@Dependency(\.database.vendors) var vendors
|
||||
switch self {
|
||||
@@ -143,7 +142,7 @@ private extension ApiRoute.VendorRoute {
|
||||
}
|
||||
}
|
||||
|
||||
private extension ApiRoute.VendorBranchRoute {
|
||||
private extension SiteRoute.Api.VendorBranchRoute {
|
||||
func handleApiRequest(logger: Logger) async throws -> (any Encodable)? {
|
||||
@Dependency(\.database.vendorBranches) var vendorBranches
|
||||
switch self {
|
||||
|
||||
@@ -4,7 +4,7 @@ import Vapor
|
||||
|
||||
extension ApiController {
|
||||
|
||||
func respond(_ route: ApiRoute, request: Vapor.Request) async throws -> any AsyncResponseEncodable {
|
||||
func respond(_ route: SiteRoute.Api, request: Vapor.Request) async throws -> any AsyncResponseEncodable {
|
||||
guard let encodable = try await json(route, logger: request.logger) else {
|
||||
return HTTPStatus.ok
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import VaporElementary
|
||||
import ViewController
|
||||
|
||||
extension ViewController {
|
||||
func respond(route: ViewRoute, request: Vapor.Request) async throws -> any AsyncResponseEncodable {
|
||||
func respond(route: SiteRoute.View, request: Vapor.Request) async throws -> any AsyncResponseEncodable {
|
||||
let html = try await view(
|
||||
for: route,
|
||||
isHtmxRequest: request.isHtmxRequest,
|
||||
|
||||
@@ -9,7 +9,7 @@ private let apiMiddleware: [any Middleware] = [
|
||||
User.guardMiddleware()
|
||||
]
|
||||
|
||||
extension ApiRoute {
|
||||
extension SiteRoute.Api {
|
||||
var middleware: [any Middleware]? {
|
||||
switch self {
|
||||
case .login: return nil
|
||||
|
||||
@@ -12,7 +12,7 @@ private let viewProtectedMiddleware: [any Middleware] = [
|
||||
}
|
||||
]
|
||||
|
||||
extension SharedModels.ViewRoute {
|
||||
extension SiteRoute.View {
|
||||
|
||||
var middleware: [any Middleware]? {
|
||||
switch self {
|
||||
|
||||
@@ -73,7 +73,7 @@ private func setupDatabase(
|
||||
private func addRoutes(to app: Application) {
|
||||
// Redirect the index path to purchase order route.
|
||||
app.get { req in
|
||||
req.redirect(to: ViewRoute.router.path(for: .purchaseOrder(.index)))
|
||||
req.redirect(to: SiteRoute.View.router.path(for: .purchaseOrder(.index)))
|
||||
}
|
||||
|
||||
app.mount(
|
||||
|
||||
@@ -2,7 +2,9 @@ import CasePaths
|
||||
import Foundation
|
||||
@preconcurrency import URLRouting
|
||||
|
||||
public enum ApiRoute: Sendable, Equatable {
|
||||
public extension SiteRoute {
|
||||
|
||||
enum Api: Sendable, Equatable {
|
||||
|
||||
case employee(EmployeeRoute)
|
||||
case login(User.Login)
|
||||
@@ -227,3 +229,4 @@ public enum ApiRoute: Sendable, Equatable {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,16 +3,16 @@ import Foundation
|
||||
@preconcurrency import URLRouting
|
||||
|
||||
public enum SiteRoute: Sendable {
|
||||
case api(ApiRoute)
|
||||
case api(SiteRoute.Api)
|
||||
case health
|
||||
case view(ViewRoute)
|
||||
case view(SiteRoute.View)
|
||||
|
||||
public static let router = OneOf {
|
||||
Route(.case(Self.view)) { ViewRoute.router }
|
||||
Route(.case(Self.view)) { SiteRoute.View.router }
|
||||
Route(.case(Self.health)) {
|
||||
Path { "health" }
|
||||
Method.get
|
||||
}
|
||||
Route(.case(Self.api)) { ApiRoute.router }
|
||||
Route(.case(Self.api)) { SiteRoute.Api.router }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,33 +2,31 @@ import CasePathsCore
|
||||
import Foundation
|
||||
@preconcurrency import URLRouting
|
||||
|
||||
public enum ViewRoute: Sendable, Equatable {
|
||||
public extension SiteRoute {
|
||||
enum View: Sendable, Equatable {
|
||||
|
||||
case employee(EmployeeRoute)
|
||||
case login(LoginRoute)
|
||||
case purchaseOrder(PurchaseOrderRoute)
|
||||
case user(UserRoute)
|
||||
case vendor(VendorRoute)
|
||||
case vendorBranch(VendorBranchRoute)
|
||||
case employee(SiteRoute.View.EmployeeRoute)
|
||||
case login(SiteRoute.View.LoginRoute)
|
||||
case purchaseOrder(SiteRoute.View.PurchaseOrderRoute)
|
||||
case user(SiteRoute.View.UserRoute)
|
||||
case vendor(SiteRoute.View.VendorRoute)
|
||||
case vendorBranch(SiteRoute.View.VendorBranchRoute)
|
||||
|
||||
public static let router = OneOf {
|
||||
Route(.case(Self.employee)) { EmployeeRoute.router }
|
||||
Route(.case(Self.login)) { LoginRoute.router }
|
||||
Route(.case(Self.purchaseOrder)) { PurchaseOrderRoute.router }
|
||||
Route(.case(Self.user)) { UserRoute.router }
|
||||
Route(.case(Self.vendor)) { VendorRoute.router }
|
||||
Route(.case(Self.vendorBranch)) { VendorBranchRoute.router }
|
||||
}
|
||||
Route(.case(Self.employee)) { SiteRoute.View.EmployeeRoute.router }
|
||||
Route(.case(Self.login)) { SiteRoute.View.LoginRoute.router }
|
||||
Route(.case(Self.purchaseOrder)) { SiteRoute.View.PurchaseOrderRoute.router }
|
||||
Route(.case(Self.user)) { SiteRoute.View.UserRoute.router }
|
||||
Route(.case(Self.vendor)) { SiteRoute.View.VendorRoute.router }
|
||||
Route(.case(Self.vendorBranch)) { SiteRoute.View.VendorBranchRoute.router }
|
||||
}
|
||||
|
||||
public extension ViewRoute {
|
||||
|
||||
enum EmployeeRoute: Sendable, Equatable {
|
||||
public enum EmployeeRoute: Sendable, Equatable {
|
||||
case create(Employee.Create)
|
||||
case form
|
||||
case get(id: Employee.ID)
|
||||
case index
|
||||
case select(context: SelectContext)
|
||||
case select(context: SiteRoute.View.SelectContext)
|
||||
case update(id: Employee.ID, updates: Employee.Update)
|
||||
|
||||
static let rootPath = "employees"
|
||||
@@ -79,11 +77,8 @@ public extension ViewRoute {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public extension ViewRoute {
|
||||
|
||||
enum LoginRoute: Sendable, Equatable {
|
||||
public enum LoginRoute: Sendable, Equatable {
|
||||
case index(next: String? = nil)
|
||||
case post(Request)
|
||||
|
||||
@@ -131,10 +126,8 @@ public extension ViewRoute {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public extension ViewRoute {
|
||||
enum PurchaseOrderRoute: Sendable, Equatable {
|
||||
public enum PurchaseOrderRoute: Sendable, Equatable {
|
||||
case create(PurchaseOrder.Create)
|
||||
case form
|
||||
case get(id: PurchaseOrder.ID)
|
||||
@@ -244,19 +237,13 @@ public extension ViewRoute {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public extension ViewRoute {
|
||||
|
||||
enum SelectContext: String, Codable, Equatable, Sendable, CaseIterable {
|
||||
public enum SelectContext: String, Codable, Equatable, Sendable, CaseIterable {
|
||||
case purchaseOrderForm
|
||||
case purchaseOrderSearch
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public extension ViewRoute {
|
||||
enum UserRoute: Sendable, Equatable {
|
||||
public enum UserRoute: Sendable, Equatable {
|
||||
case create(User.Create)
|
||||
case form
|
||||
case get(id: User.ID)
|
||||
@@ -307,11 +294,8 @@ public extension ViewRoute {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public extension ViewRoute {
|
||||
|
||||
enum VendorRoute: Sendable, Equatable {
|
||||
public enum VendorRoute: Sendable, Equatable {
|
||||
case create(Vendor.Create)
|
||||
case form
|
||||
case get(id: Vendor.ID)
|
||||
@@ -356,14 +340,11 @@ public extension ViewRoute {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public extension ViewRoute {
|
||||
|
||||
enum VendorBranchRoute: Sendable, Equatable {
|
||||
public enum VendorBranchRoute: Sendable, Equatable {
|
||||
case create(VendorBranch.Create)
|
||||
case index(for: Vendor.ID? = nil)
|
||||
case select(context: ViewRoute.SelectContext)
|
||||
case select(context: SiteRoute.View.SelectContext)
|
||||
|
||||
public static let router = OneOf {
|
||||
Route(.case(Self.create)) {
|
||||
@@ -388,7 +369,8 @@ public extension ViewRoute {
|
||||
Path { "vendors"; "branches"; "select" }
|
||||
Method.get
|
||||
Query {
|
||||
Field("context") { SelectContext.parser() }
|
||||
Field("context") { SiteRoute.View.SelectContext.parser() }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ public struct ViewController: Sendable {
|
||||
|
||||
@Sendable
|
||||
public func view(
|
||||
for route: ViewRoute,
|
||||
for route: SiteRoute.View,
|
||||
isHtmxRequest: Bool,
|
||||
logger: Logger,
|
||||
authenticate: @escaping AuthenticateHandler
|
||||
@@ -30,13 +30,13 @@ public struct ViewController: Sendable {
|
||||
}
|
||||
|
||||
public struct Request: Sendable {
|
||||
public let route: ViewRoute
|
||||
public let route: SiteRoute.View
|
||||
public let isHtmxRequest: Bool
|
||||
public let authenticate: AuthenticateHandler
|
||||
public let logger: Logger
|
||||
|
||||
public init(
|
||||
_ route: ViewRoute,
|
||||
_ route: SiteRoute.View,
|
||||
isHtmxRequest: Bool,
|
||||
authenticate: @escaping AuthenticateHandler,
|
||||
logger: Logger
|
||||
|
||||
@@ -6,7 +6,7 @@ import SharedModels
|
||||
import Vapor
|
||||
import ViewController
|
||||
|
||||
public extension SharedModels.ViewRoute {
|
||||
public extension SiteRoute.View {
|
||||
|
||||
@Sendable
|
||||
func view(
|
||||
@@ -52,7 +52,7 @@ public extension SharedModels.ViewRoute {
|
||||
}
|
||||
}
|
||||
|
||||
extension SharedModels.ViewRoute.EmployeeRoute {
|
||||
extension SiteRoute.View.EmployeeRoute {
|
||||
|
||||
private func mainPage<C: HTML>(
|
||||
_ html: C
|
||||
@@ -98,7 +98,7 @@ extension SharedModels.ViewRoute.EmployeeRoute {
|
||||
|
||||
}
|
||||
|
||||
extension SharedModels.ViewRoute.PurchaseOrderRoute {
|
||||
extension SiteRoute.View.PurchaseOrderRoute {
|
||||
private func mainPage<C: HTML>(
|
||||
_ html: C
|
||||
) async throws -> AnySendableHTML where C: Sendable {
|
||||
@@ -148,7 +148,7 @@ extension SharedModels.ViewRoute.PurchaseOrderRoute {
|
||||
|
||||
}
|
||||
|
||||
extension SharedModels.ViewRoute.PurchaseOrderRoute.Search {
|
||||
extension SiteRoute.View.PurchaseOrderRoute.Search {
|
||||
|
||||
func mainPage(search: PurchaseOrderSearch = .init()) -> AnySendableHTML {
|
||||
MainPage(displayNav: true, route: .purchaseOrders) {
|
||||
@@ -180,7 +180,7 @@ extension SharedModels.ViewRoute.PurchaseOrderRoute.Search {
|
||||
}
|
||||
}
|
||||
|
||||
extension SharedModels.ViewRoute.UserRoute {
|
||||
extension SiteRoute.View.UserRoute {
|
||||
|
||||
private func mainPage<C: HTML>(_ html: C) async throws -> AnySendableHTML where C: Sendable {
|
||||
@Dependency(\.database) var database
|
||||
@@ -220,7 +220,7 @@ extension SharedModels.ViewRoute.UserRoute {
|
||||
|
||||
}
|
||||
|
||||
extension SharedModels.ViewRoute.VendorRoute {
|
||||
extension SiteRoute.View.VendorRoute {
|
||||
private func mainPage<C: HTML>(_ html: C) async throws -> AnySendableHTML where C: Sendable {
|
||||
@Dependency(\.database) var database
|
||||
let vendors = try await database.vendors.fetchAll(.withBranches)
|
||||
@@ -267,7 +267,7 @@ extension SharedModels.ViewRoute.VendorRoute {
|
||||
}
|
||||
}
|
||||
|
||||
extension SharedModels.ViewRoute.VendorBranchRoute {
|
||||
extension SiteRoute.View.VendorBranchRoute {
|
||||
|
||||
@Sendable
|
||||
func view(isHtmxRequest: Bool) async throws -> AnySendableHTML {
|
||||
@@ -292,7 +292,7 @@ extension SharedModels.ViewRoute.VendorBranchRoute {
|
||||
}
|
||||
}
|
||||
|
||||
extension SharedModels.ViewRoute.PurchaseOrderRoute.Search.Request {
|
||||
extension SiteRoute.View.PurchaseOrderRoute.Search.Request {
|
||||
|
||||
@Sendable
|
||||
func toDatabaseQuery() throws -> PurchaseOrder.SearchContext {
|
||||
@@ -316,7 +316,7 @@ extension SharedModels.ViewRoute.PurchaseOrderRoute.Search.Request {
|
||||
}
|
||||
}
|
||||
|
||||
extension SharedModels.ViewRoute.SelectContext {
|
||||
extension SiteRoute.View.SelectContext {
|
||||
|
||||
@Sendable
|
||||
func toHTML(employees: [Employee]) -> EmployeeSelect {
|
||||
|
||||
@@ -74,7 +74,7 @@ struct EmployeeForm: HTML {
|
||||
return "Update"
|
||||
}
|
||||
|
||||
private var targetURL: SharedModels.ViewRoute {
|
||||
private var targetURL: SiteRoute.View {
|
||||
guard let employee else { return .employee(.index) }
|
||||
return .employee(.get(id: employee.id))
|
||||
}
|
||||
|
||||
@@ -4,23 +4,23 @@ import SharedModels
|
||||
|
||||
extension HTMLAttribute.hx {
|
||||
@Sendable
|
||||
static func get(route: SharedModels.ViewRoute) -> HTMLAttribute {
|
||||
get(SharedModels.ViewRoute.router.path(for: route))
|
||||
static func get(route: SiteRoute.View) -> HTMLAttribute {
|
||||
get(SiteRoute.View.router.path(for: route))
|
||||
}
|
||||
|
||||
@Sendable
|
||||
static func post(route: SharedModels.ViewRoute) -> HTMLAttribute {
|
||||
post(SharedModels.ViewRoute.router.path(for: route))
|
||||
static func post(route: SiteRoute.View) -> HTMLAttribute {
|
||||
post(SiteRoute.View.router.path(for: route))
|
||||
}
|
||||
|
||||
@Sendable
|
||||
static func put(route: SharedModels.ViewRoute) -> HTMLAttribute {
|
||||
put(SharedModels.ViewRoute.router.path(for: route))
|
||||
static func put(route: SiteRoute.View) -> HTMLAttribute {
|
||||
put(SiteRoute.View.router.path(for: route))
|
||||
}
|
||||
|
||||
@Sendable
|
||||
static func delete(route: SharedModels.ApiRoute) -> HTMLAttribute {
|
||||
delete(SharedModels.ApiRoute.router.path(for: route))
|
||||
static func delete(route: SiteRoute.Api) -> HTMLAttribute {
|
||||
delete(SiteRoute.Api.router.path(for: route))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,8 +65,8 @@ indirect enum HXOnValue: Sendable {
|
||||
}
|
||||
|
||||
@Sendable
|
||||
static func setWindowLocation(to route: ViewRoute) -> Self {
|
||||
setWindowLocation(ViewRoute.router.path(for: route))
|
||||
static func setWindowLocation(to route: SiteRoute.View) -> Self {
|
||||
setWindowLocation(SiteRoute.View.router.path(for: route))
|
||||
}
|
||||
|
||||
@Sendable
|
||||
|
||||
@@ -53,7 +53,7 @@ struct LoggedIn: HTML, Sendable {
|
||||
let next: String?
|
||||
var content: some HTML {
|
||||
div(
|
||||
.hx.get(nextRoute ?? ViewRoute.router.path(for: .purchaseOrder(.index))),
|
||||
.hx.get(nextRoute ?? SiteRoute.View.router.path(for: .purchaseOrder(.index))),
|
||||
.hx.pushURL(true),
|
||||
.hx.target(.body),
|
||||
.hx.trigger(.event(.revealed)),
|
||||
@@ -66,7 +66,9 @@ struct LoggedIn: HTML, Sendable {
|
||||
// HACK: to get search route to work after login.
|
||||
var nextRoute: String? {
|
||||
if let next, next.contains("search") {
|
||||
return ViewRoute.router.path(for: .purchaseOrder(.search(.index(context: .employee, table: true))))
|
||||
return SiteRoute.View.router.path(
|
||||
for: .purchaseOrder(.search(.index(context: .employee, table: true)))
|
||||
)
|
||||
}
|
||||
return next
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import Vapor
|
||||
|
||||
struct PurchaseOrderSearch: HTML, Sendable {
|
||||
|
||||
typealias Context = SharedModels.ViewRoute.PurchaseOrderRoute.Search.Context
|
||||
typealias Context = SiteRoute.View.PurchaseOrderRoute.Search.Context
|
||||
|
||||
let context: Context
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import SharedModels
|
||||
import Vapor
|
||||
|
||||
struct PurchaseOrderTable: HTML, Sendable {
|
||||
typealias SearchContext = SharedModels.ViewRoute.PurchaseOrderRoute.Search.Context
|
||||
typealias SearchContext = SiteRoute.View.PurchaseOrderRoute.Search.Context
|
||||
|
||||
let page: Page<PurchaseOrder>
|
||||
let context: Context
|
||||
|
||||
@@ -101,7 +101,7 @@ struct UserForm: HTML, Sendable {
|
||||
}
|
||||
}
|
||||
|
||||
var targetURL: ViewRoute {
|
||||
var targetURL: SiteRoute.View {
|
||||
switch self {
|
||||
case .create:
|
||||
return .user(.index)
|
||||
|
||||
@@ -22,10 +22,10 @@ enum Button {
|
||||
}
|
||||
|
||||
@Sendable
|
||||
static func close(id: IDKey, resetURL route: ViewRoute? = nil) -> some HTML<HTMLTag.button> {
|
||||
static func close(id: IDKey, resetURL route: SiteRoute.View? = nil) -> some HTML<HTMLTag.button> {
|
||||
close(
|
||||
id: id.description,
|
||||
resetURL: route != nil ? ViewRoute.router.path(for: route!) : nil
|
||||
resetURL: route != nil ? SiteRoute.View.router.path(for: route!) : nil
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ extension Float where B == DefaultCloseButton {
|
||||
init(
|
||||
id: String = "float",
|
||||
shouldDisplay: Bool,
|
||||
resetURL route: ViewRoute? = nil,
|
||||
resetURL route: SiteRoute.View? = nil,
|
||||
@HTMLBuilder body: () -> C
|
||||
) {
|
||||
self.init(
|
||||
@@ -71,7 +71,7 @@ extension Float where B == DefaultCloseButton {
|
||||
body: body,
|
||||
closeButton: { DefaultCloseButton(
|
||||
id: id,
|
||||
resetURL: route != nil ? ViewRoute.router.path(for: route!) : nil
|
||||
resetURL: route != nil ? SiteRoute.View.router.path(for: route!) : nil
|
||||
) }
|
||||
)
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import Vapor
|
||||
struct EmployeeSelect: HTML, Sendable {
|
||||
|
||||
let employees: [Employee]?
|
||||
let context: ViewRoute.SelectContext
|
||||
let context: SiteRoute.View.SelectContext
|
||||
|
||||
var content: some HTML {
|
||||
if let employees {
|
||||
@@ -42,7 +42,7 @@ struct EmployeeSelect: HTML, Sendable {
|
||||
|
||||
struct VendorBranchSelect: HTML, Sendable {
|
||||
let branches: [VendorBranch.Detail]?
|
||||
let context: ViewRoute.SelectContext
|
||||
let context: SiteRoute.View.SelectContext
|
||||
|
||||
var content: some HTML {
|
||||
if let branches {
|
||||
@@ -79,7 +79,7 @@ struct VendorBranchSelect: HTML, Sendable {
|
||||
// case purchaseOrderForm
|
||||
// case purchaseOrderSearch
|
||||
|
||||
extension ViewRoute.SelectContext {
|
||||
extension SiteRoute.View.SelectContext {
|
||||
var classString: String {
|
||||
switch self {
|
||||
case .purchaseOrderForm: return "col-3"
|
||||
|
||||
@@ -85,7 +85,7 @@ struct VendorForm: HTML, Sendable {
|
||||
return "Update"
|
||||
}
|
||||
|
||||
var targetURL: SharedModels.ViewRoute {
|
||||
var targetURL: SiteRoute.View {
|
||||
guard let vendor else { return .vendor(.index) }
|
||||
return .vendor(.get(id: vendor.id))
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import URLRouting
|
||||
|
||||
@Suite("EmployeeApiRouteTests")
|
||||
struct EmployeeApiRouteTests {
|
||||
let router = ApiRoute.router
|
||||
let router = SiteRoute.Api.router
|
||||
|
||||
@Test
|
||||
func employeeCreate() throws {
|
||||
|
||||
@@ -6,7 +6,7 @@ import URLRouting
|
||||
|
||||
@Suite("PurchaseOrderApiRouteTests")
|
||||
struct PurchaseOrderApiRouteTests {
|
||||
let router = ApiRoute.router
|
||||
let router = SiteRoute.Api.router
|
||||
|
||||
@Test
|
||||
func create() throws {
|
||||
|
||||
@@ -6,7 +6,7 @@ import URLRouting
|
||||
|
||||
@Suite("UserApiRouteTests")
|
||||
struct UserApiRouteTests {
|
||||
let router = ApiRoute.router
|
||||
let router = SiteRoute.Api.router
|
||||
|
||||
@Test
|
||||
func create() throws {
|
||||
|
||||
@@ -6,7 +6,7 @@ import URLRouting
|
||||
|
||||
@Suite("VendorApiRouteTests")
|
||||
struct VendorApiRouteTests {
|
||||
let router = ApiRoute.router
|
||||
let router = SiteRoute.Api.router
|
||||
|
||||
@Test
|
||||
func create() throws {
|
||||
|
||||
@@ -6,7 +6,7 @@ import URLRouting
|
||||
|
||||
@Suite("VendorBranchApiRouteTests")
|
||||
struct VendorBranchApiRouteTests {
|
||||
let router = ApiRoute.router
|
||||
let router = SiteRoute.Api.router
|
||||
|
||||
@Test
|
||||
func create() throws {
|
||||
|
||||
@@ -90,7 +90,7 @@ struct ViewControllerTests {
|
||||
htmlString = try await viewController.render(.purchaseOrder(.page(page: 1, limit: 25)))
|
||||
assertSnapshot(of: htmlString, as: .html)
|
||||
|
||||
for context in ViewRoute.PurchaseOrderRoute.Search.Context.allCases {
|
||||
for context in SiteRoute.View.PurchaseOrderRoute.Search.Context.allCases {
|
||||
htmlString = try await viewController.render(.purchaseOrder(.search(.index(
|
||||
context: context,
|
||||
table: true
|
||||
@@ -189,7 +189,7 @@ struct ViewControllerTests {
|
||||
|
||||
extension ViewController {
|
||||
|
||||
func render(_ route: ViewRoute) async throws -> String {
|
||||
func render(_ route: SiteRoute.View) async throws -> String {
|
||||
let html = try await view(
|
||||
for: route,
|
||||
isHtmxRequest: true,
|
||||
|
||||
@@ -6,7 +6,7 @@ import URLRouting
|
||||
|
||||
@Suite("EmployeeViewRouteTests")
|
||||
struct EmployeeViewRouteTests {
|
||||
let router = ViewRoute.router
|
||||
let router = SiteRoute.View.router
|
||||
|
||||
@Test
|
||||
func employeeCreate() throws {
|
||||
|
||||
@@ -6,7 +6,7 @@ import URLRouting
|
||||
|
||||
@Suite("LoginViewRouteTests")
|
||||
struct LoginViewRouteTests {
|
||||
let router = ViewRoute.router
|
||||
let router = SiteRoute.View.router
|
||||
|
||||
@Test
|
||||
func get() throws {
|
||||
|
||||
@@ -6,7 +6,7 @@ import URLRouting
|
||||
|
||||
@Suite("PurchaseOrderViewRouteTests")
|
||||
struct PurchaseOrderViewRouteTests {
|
||||
let router = ViewRoute.router
|
||||
let router = SiteRoute.View.router
|
||||
|
||||
@Test
|
||||
func create() throws {
|
||||
|
||||
@@ -6,7 +6,7 @@ import URLRouting
|
||||
|
||||
@Suite("UserViewRouteTests")
|
||||
struct UserViewRouteTests {
|
||||
let router = ViewRoute.router
|
||||
let router = SiteRoute.View.router
|
||||
|
||||
@Test
|
||||
func create() throws {
|
||||
|
||||
@@ -6,7 +6,7 @@ import URLRouting
|
||||
|
||||
@Suite("VendorBranchViewRouteTests")
|
||||
struct VendorBranchViewRouteTests {
|
||||
let router = ViewRoute.router
|
||||
let router = SiteRoute.View.router
|
||||
|
||||
@Test
|
||||
func create() throws {
|
||||
|
||||
@@ -6,7 +6,7 @@ import URLRouting
|
||||
|
||||
@Suite("VendorViewRouteTests")
|
||||
struct VendorViewRouteTests {
|
||||
let router = ViewRoute.router
|
||||
let router = SiteRoute.View.router
|
||||
|
||||
@Test
|
||||
func create() throws {
|
||||
|
||||
Reference in New Issue
Block a user