refactored out setting form field validity within validation
refactored validate method to return tuple and again not mess with setting formfield validity Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
df2b6b4db2
commit
7c05d9fcc7
@ -53,7 +53,6 @@ public extension RulesProtocol {
|
||||
if let validity = previousFieldValidity[formKey], !validity, fieldValidity {
|
||||
fieldValidity = false
|
||||
}
|
||||
(formField as? FormRuleWatcherFieldProtocol)?.setValidity(fieldValidity, rule: self)
|
||||
valid = valid && fieldValidity
|
||||
previousValidity[formKey] = fieldValidity
|
||||
}
|
||||
@ -66,19 +65,28 @@ public protocol RulesContainerProtocol{
|
||||
}
|
||||
|
||||
public extension RulesContainerProtocol {
|
||||
func validate(_ fields: [String: FormFieldProtocol]) -> Bool {
|
||||
/// This validation for Rules for the Validation or for Effects.
|
||||
/// - Parameters:
|
||||
/// - fields: Fields for the group
|
||||
/// - setValidity: Since this function is for validation, this bool determines if you should set the FormFields.setValidity for a rule.
|
||||
/// this method can be called for Form Validation and Effect Validation (this doesn't affect the submital of the form)
|
||||
/// - Returns: Tuple(valid, fieldValidity)
|
||||
/// - valid: bool for all rules
|
||||
/// - fieldValidity: accumulation of all fieldKey: valid
|
||||
func validate(_ fields: [String: FormFieldProtocol]) -> (valid: Bool, fieldValidity: [String:Bool] ) {
|
||||
// Validate each rule.
|
||||
var valid = true
|
||||
var previousValidity: [String: Bool] = [:]
|
||||
for rule in self.rules {
|
||||
|
||||
//validate the rule against the fields
|
||||
let tuple = rule.validate(fields, previousValidity)
|
||||
|
||||
if let ruleId = rule.ruleId {
|
||||
print("validation ruleId: \(ruleId) value: \(tuple) \nfields: \(rule.fields)" )
|
||||
}
|
||||
//merge the fieldValidity
|
||||
previousValidity = previousValidity.merging(tuple.fieldValidity) { (_, new) in new }
|
||||
valid = valid && tuple.valid
|
||||
}
|
||||
return valid
|
||||
return (valid: valid, fieldValidity: previousValidity)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user