From c665f547a6f4fc852e3add7c6c2282092898c9f2 Mon Sep 17 00:00:00 2001 From: "Suresh, Kamlesh" Date: Fri, 10 Apr 2020 17:35:46 -0400 Subject: [PATCH] any required fixes --- MVMCoreUI/FormUIHelpers/FormValidator.swift | 15 +-------------- .../Rules/Rules/RuleAnyRequiredModel.swift | 2 +- .../Rules/Rules/RuleEqualsModel.swift | 2 +- .../FormUIHelpers/Rules/Rules/RulesProtocol.swift | 14 ++++++++++++++ 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/MVMCoreUI/FormUIHelpers/FormValidator.swift b/MVMCoreUI/FormUIHelpers/FormValidator.swift index 06c8cdf1..1f0253de 100644 --- a/MVMCoreUI/FormUIHelpers/FormValidator.swift +++ b/MVMCoreUI/FormUIHelpers/FormValidator.swift @@ -88,7 +88,7 @@ import MVMCore // Validate each rule. var valid = true for rule in group.rules { - valid = valid && validateRule(rule) + valid = valid && rule.validate(fields) } // Notify the group watchers of validity. @@ -97,19 +97,6 @@ import MVMCore watcher.setValidity(valid, group: group) } } - - return valid - } - - /// Validates a given rule. Returns if valid. - public func validateRule(_ rule: RulesProtocol) -> Bool { - var valid = true - for formKey in rule.fields { - guard let formField = fields[formKey] else { continue } - let fieldValidity = rule.isValid(formField) - (formField as? FormRuleWatcherFieldProtocol)?.setValidity(fieldValidity, rule: rule) - valid = valid && fieldValidity - } return valid } } diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyRequiredModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyRequiredModel.swift index d41c0b0c..6ca905bf 100644 --- a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyRequiredModel.swift +++ b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyRequiredModel.swift @@ -35,7 +35,7 @@ public class RuleAnyRequiredModel: RulesProtocol { return false } - public func isValid(_ fieldMolecules: [String: FormFieldProtocol]) -> Bool { + public func validate(_ fieldMolecules: [String: FormFieldProtocol]) -> Bool { for formKey in fields { guard let formField = fieldMolecules[formKey] else { continue } diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsModel.swift index e6b338a4..4dd6e2a0 100644 --- a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsModel.swift +++ b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsModel.swift @@ -18,7 +18,7 @@ public class RuleEqualsModel: RulesProtocol { return false } - public func isValid(_ fieldMolecules: [String: FormFieldProtocol]) -> Bool { + public func validate(_ fieldMolecules: [String: FormFieldProtocol]) -> Bool { var valid = true var compareValue: AnyHashable? for formKey in fields { diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RulesProtocol.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RulesProtocol.swift index 6afe5b17..70d30506 100644 --- a/MVMCoreUI/FormUIHelpers/Rules/Rules/RulesProtocol.swift +++ b/MVMCoreUI/FormUIHelpers/Rules/Rules/RulesProtocol.swift @@ -22,6 +22,9 @@ public protocol RulesProtocol: ModelProtocol { // Returns if a given field is valid according to the rule func isValid(_ formField: FormFieldProtocol) -> Bool + + // Returns if a the rule is valid + func validate(_ fieldMolecules: [String: FormFieldProtocol]) -> Bool } public extension RulesProtocol { @@ -37,4 +40,15 @@ public extension RulesProtocol { static var categoryName: String { return "\(RulesProtocol.self)" } + + func validate(_ fieldMolecules: [String: FormFieldProtocol]) -> Bool { + var valid = true + for formKey in fields { + guard let formField = fieldMolecules[formKey] else { continue } + let fieldValidity = isValid(formField) + (formField as? FormRuleWatcherFieldProtocol)?.setValidity(fieldValidity, rule: self) + valid = valid && fieldValidity + } + return valid + } }