feat: Adds reset password views and view routes.
This commit is contained in:
@@ -3,11 +3,13 @@ import Foundation
|
||||
@preconcurrency import URLRouting
|
||||
|
||||
public extension SiteRoute {
|
||||
// swiftlint:disable type_body_length
|
||||
enum View: Sendable, Equatable {
|
||||
|
||||
case employee(SiteRoute.View.EmployeeRoute)
|
||||
case login(SiteRoute.View.LoginRoute)
|
||||
case purchaseOrder(SiteRoute.View.PurchaseOrderRoute)
|
||||
case resetPassword(SiteRoute.View.ResetPasswordRoute)
|
||||
case user(SiteRoute.View.UserRoute)
|
||||
case vendor(SiteRoute.View.VendorRoute)
|
||||
case vendorBranch(SiteRoute.View.VendorBranchRoute)
|
||||
@@ -16,6 +18,7 @@ public extension SiteRoute {
|
||||
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.resetPassword)) { SiteRoute.View.ResetPasswordRoute.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 }
|
||||
@@ -238,6 +241,31 @@ public extension SiteRoute {
|
||||
}
|
||||
}
|
||||
|
||||
public enum ResetPasswordRoute: Sendable, Equatable {
|
||||
case index(id: User.ID)
|
||||
case submit(id: User.ID, request: User.ResetPassword)
|
||||
|
||||
static let rootPath = "reset-password"
|
||||
|
||||
public static let router = OneOf {
|
||||
Route(.case(Self.index(id:))) {
|
||||
Path { rootPath; User.ID.parser() }
|
||||
Method.get
|
||||
}
|
||||
Route(.case(Self.submit(id:request:))) {
|
||||
Path { rootPath; User.ID.parser() }
|
||||
Method.patch
|
||||
Body {
|
||||
FormData {
|
||||
Field("password", .string)
|
||||
Field("confirmPassword", .string)
|
||||
}
|
||||
.map(.memberwise(User.ResetPassword.init))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum SelectContext: String, Codable, Equatable, Sendable, CaseIterable {
|
||||
case purchaseOrderForm
|
||||
case purchaseOrderSearch
|
||||
@@ -375,4 +403,5 @@ public extension SiteRoute {
|
||||
}
|
||||
}
|
||||
}
|
||||
// swiftlint:enable type_body_length
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user