From f5d55930b7463b939544dd21498ce4a76bc5498b Mon Sep 17 00:00:00 2001 From: "Steffen D. Sommer" Date: Wed, 25 Jul 2018 15:06:16 +0200 Subject: [PATCH 1/3] Update to Forms 0.7 --- Package.swift | 2 +- .../Frontend/FrontendUserControllerDelegate.swift | 8 +++----- Sources/JWTKeychain/Models/User/PasswordResetForm.swift | 8 ++++++++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Package.swift b/Package.swift index 796d598..677e7d5 100644 --- a/Package.swift +++ b/Package.swift @@ -10,7 +10,7 @@ let package = Package( dependencies: [ .package(url: "https://github.com/harlanhaskins/Punctual.swift.git", .upToNextMajor(from: "1.0.0")), .package(url: "https://github.com/nodes-vapor/flash.git", .upToNextMajor(from: "1.0.0")), - .package(url: "https://github.com/nodes-vapor/forms.git", .upToNextMinor(from: "0.6.1")), + .package(url: "https://github.com/nodes-vapor/forms.git", .upToNextMinor(from: "0.7.0")), .package(url: "https://github.com/nodes-vapor/sugar.git", .upToNextMajor(from: "2.0.0")), .package(url: "https://github.com/vapor/fluent-provider.git", .upToNextMajor(from: "1.0.0")), .package(url: "https://github.com/vapor/jwt-provider.git", .upToNextMajor(from: "1.0.0")), diff --git a/Sources/JWTKeychain/Controllers/Frontend/FrontendUserControllerDelegate.swift b/Sources/JWTKeychain/Controllers/Frontend/FrontendUserControllerDelegate.swift index 2af5ac6..5f0bd8a 100644 --- a/Sources/JWTKeychain/Controllers/Frontend/FrontendUserControllerDelegate.swift +++ b/Sources/JWTKeychain/Controllers/Frontend/FrontendUserControllerDelegate.swift @@ -10,7 +10,7 @@ import SMTP import Vapor public protocol PasswordResetInfoType: - FieldsetRepresentable, + NodeRepresentable, ValidationModeValidatable { var email: String? { get } @@ -54,8 +54,7 @@ open class FrontendUserControllerDelegate: viewRenderer: ViewRenderer ) throws -> ResponseRepresentable { let fieldset = try request.fieldset ?? - U.extractPasswordResetInfo(from: request) - .makeFieldset(inValidationMode: .none) + U.extractPasswordResetInfo(from: request).makeNode(in: ValidationContext(mode: .none)) return try viewRenderer.make( pathToFormView, @@ -79,8 +78,7 @@ open class FrontendUserControllerDelegate: let passwordResetInfo = try U.extractPasswordResetInfo(from: request) // prepare common response - let fieldset = try passwordResetInfo - .makeFieldset(inValidationMode: .all) + let fieldset = try passwordResetInfo.makeNode(in: ValidationContext(mode: .all)) let redirectToForm = Response(redirect: formPath).setFieldset(fieldset) // ensure form values are valid diff --git a/Sources/JWTKeychain/Models/User/PasswordResetForm.swift b/Sources/JWTKeychain/Models/User/PasswordResetForm.swift index c5e92be..4732592 100644 --- a/Sources/JWTKeychain/Models/User/PasswordResetForm.swift +++ b/Sources/JWTKeychain/Models/User/PasswordResetForm.swift @@ -69,6 +69,14 @@ extension PasswordResetForm: JSONInitializable { // MARK: PasswordResetInfoType extension PasswordResetForm: PasswordResetInfoType { + public func makeNode(in context: Context?) throws -> Node { + return Node([ + User.Keys.email: .string(email ?? ""), + User.Keys.password: .string(password ?? ""), + User.Keys.passwordRepeat: .string(passwordRepeatField.value ?? "") + ]) + } + public var email: String? { return emailField.value } From 33c7e0043f0590c009aa9a1850e74d32d9c8457f Mon Sep 17 00:00:00 2001 From: "Steffen D. Sommer" Date: Mon, 20 Aug 2018 17:31:17 +0200 Subject: [PATCH 2/3] Align with Forms update --- .../Frontend/FrontendUserControllerDelegate.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sources/JWTKeychain/Controllers/Frontend/FrontendUserControllerDelegate.swift b/Sources/JWTKeychain/Controllers/Frontend/FrontendUserControllerDelegate.swift index 5f0bd8a..3a08afa 100644 --- a/Sources/JWTKeychain/Controllers/Frontend/FrontendUserControllerDelegate.swift +++ b/Sources/JWTKeychain/Controllers/Frontend/FrontendUserControllerDelegate.swift @@ -10,7 +10,7 @@ import SMTP import Vapor public protocol PasswordResetInfoType: - NodeRepresentable, + FieldsetRepresentable, ValidationModeValidatable { var email: String? { get } @@ -54,7 +54,7 @@ open class FrontendUserControllerDelegate: viewRenderer: ViewRenderer ) throws -> ResponseRepresentable { let fieldset = try request.fieldset ?? - U.extractPasswordResetInfo(from: request).makeNode(in: ValidationContext(mode: .none)) + U.extractPasswordResetInfo(from: request).makeFieldset(inValidationMode: .none) return try viewRenderer.make( pathToFormView, @@ -78,7 +78,7 @@ open class FrontendUserControllerDelegate: let passwordResetInfo = try U.extractPasswordResetInfo(from: request) // prepare common response - let fieldset = try passwordResetInfo.makeNode(in: ValidationContext(mode: .all)) + let fieldset = try passwordResetInfo.makeFieldset(inValidationMode: .all) let redirectToForm = Response(redirect: formPath).setFieldset(fieldset) // ensure form values are valid From db9126e70e70466e786f8eb8934e8b1054289a26 Mon Sep 17 00:00:00 2001 From: "Steffen D. Sommer" Date: Tue, 21 Aug 2018 07:02:29 +0200 Subject: [PATCH 3/3] Remove unneeded makeNode --- Sources/JWTKeychain/Models/User/PasswordResetForm.swift | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Sources/JWTKeychain/Models/User/PasswordResetForm.swift b/Sources/JWTKeychain/Models/User/PasswordResetForm.swift index 4732592..c5e92be 100644 --- a/Sources/JWTKeychain/Models/User/PasswordResetForm.swift +++ b/Sources/JWTKeychain/Models/User/PasswordResetForm.swift @@ -69,14 +69,6 @@ extension PasswordResetForm: JSONInitializable { // MARK: PasswordResetInfoType extension PasswordResetForm: PasswordResetInfoType { - public func makeNode(in context: Context?) throws -> Node { - return Node([ - User.Keys.email: .string(email ?? ""), - User.Keys.password: .string(password ?? ""), - User.Keys.passwordRepeat: .string(passwordRepeatField.value ?? "") - ]) - } - public var email: String? { return emailField.value }