code review
This commit is contained in:
parent
2e75f8638c
commit
766ba93499
@ -99,10 +99,10 @@ import MVMCore
|
||||
var previousValidity: [String: Bool] = [:]
|
||||
for rule in group.rules {
|
||||
let tuple = rule.validate(fields, previousValidity)
|
||||
let temp = tuple.0
|
||||
let returnedValidity = tuple.1
|
||||
let isValidRule = tuple.valid
|
||||
let returnedValidity = tuple.fieldValidity
|
||||
previousValidity = previousValidity.merging(returnedValidity) { (_, new) in new }
|
||||
valid = valid && temp
|
||||
valid = valid && isValidRule
|
||||
}
|
||||
|
||||
// Notify the group watchers of validity.
|
||||
|
||||
@ -36,7 +36,7 @@ public class RuleAnyRequiredModel: RulesProtocol {
|
||||
return false
|
||||
}
|
||||
|
||||
public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidiity: [String: Bool]) -> (Bool, [String: Bool]) {
|
||||
public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidity: [String: Bool]) -> (valid: Bool, fieldValidity: [String: Bool]) {
|
||||
|
||||
var previousValidity: [String: Bool] = [:]
|
||||
for formKey in fields {
|
||||
@ -44,7 +44,7 @@ public class RuleAnyRequiredModel: RulesProtocol {
|
||||
|
||||
var fieldValidity = isValid(formField)
|
||||
// If past rule is invalid forr a field, the current rule should not flip the validity of a field
|
||||
if let validity = previousFieldValidiity[formKey], !validity, fieldValidity {
|
||||
if let validity = previousFieldValidity[formKey], !validity, fieldValidity {
|
||||
fieldValidity = false
|
||||
}
|
||||
|
||||
@ -53,6 +53,6 @@ public class RuleAnyRequiredModel: RulesProtocol {
|
||||
}
|
||||
previousValidity[formKey] = false
|
||||
}
|
||||
return (false, previousValidity)
|
||||
return (valid: false, fieldValidity: previousValidity)
|
||||
}
|
||||
}
|
||||
|
||||
@ -27,13 +27,13 @@ public class RuleAnyValueChangedModel: RulesProtocol {
|
||||
return formField.baseValue != formField.formFieldValue()
|
||||
}
|
||||
|
||||
public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidiity: [String: Bool]) -> (Bool, [String: Bool]) {
|
||||
public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidity: [String: Bool]) -> (valid: Bool, fieldValidity: [String: Bool]) {
|
||||
var previousValidity: [String: Bool] = [:]
|
||||
for formKey in fields {
|
||||
guard let formField = fieldMolecules[formKey] else { continue }
|
||||
var fieldValidity = isValid(formField)
|
||||
// If past rule is invalid forr a field, the current rule should not flip the validity of a field
|
||||
if let validity = previousFieldValidiity[formKey], !validity, fieldValidity {
|
||||
if let validity = previousFieldValidity[formKey], !validity, fieldValidity {
|
||||
fieldValidity = false
|
||||
}
|
||||
|
||||
@ -41,7 +41,7 @@ public class RuleAnyValueChangedModel: RulesProtocol {
|
||||
return (true, previousValidity)
|
||||
}
|
||||
previousValidity[formKey] = false
|
||||
}
|
||||
return (false, previousValidity)
|
||||
}
|
||||
return (valid: false, fieldValidity: previousValidity)
|
||||
}
|
||||
}
|
||||
|
||||
@ -27,7 +27,7 @@ public class RuleEqualsIgnoreCaseModel: RulesProtocol {
|
||||
return false
|
||||
}
|
||||
|
||||
public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidiity: [String: Bool]) -> (Bool, [String: Bool]) {
|
||||
public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidity: [String: Bool]) -> (valid: Bool, fieldValidity: [String: Bool]) {
|
||||
var valid = false
|
||||
var compareText: String?
|
||||
|
||||
@ -46,7 +46,7 @@ public class RuleEqualsIgnoreCaseModel: RulesProtocol {
|
||||
|
||||
var fieldValidity = valid
|
||||
// If past rule is invalid forr a field, the current rule should not flip the validity of a field
|
||||
if let validity = previousFieldValidiity[formKey], !validity, fieldValidity {
|
||||
if let validity = previousFieldValidity[formKey], !validity, fieldValidity {
|
||||
fieldValidity = false
|
||||
}
|
||||
|
||||
@ -60,7 +60,6 @@ public class RuleEqualsIgnoreCaseModel: RulesProtocol {
|
||||
previousValidity[formKey] = valid
|
||||
(formField as? FormRuleWatcherFieldProtocol)?.setValidity(valid, rule: self)
|
||||
}
|
||||
|
||||
return (valid, previousValidity)
|
||||
return (valid: valid, fieldValidity: previousValidity)
|
||||
}
|
||||
}
|
||||
|
||||
@ -27,7 +27,7 @@ public class RuleEqualsModel: RulesProtocol {
|
||||
return false
|
||||
}
|
||||
|
||||
public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidiity: [String: Bool]) -> (Bool, [String: Bool]) {
|
||||
public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidity: [String: Bool]) -> (valid: Bool, fieldValidity: [String: Bool]) {
|
||||
var valid = true
|
||||
var compareValue: AnyHashable?
|
||||
var previousValidity: [String: Bool] = [:]
|
||||
@ -48,13 +48,12 @@ public class RuleEqualsModel: RulesProtocol {
|
||||
} else {
|
||||
var fieldValidity = valid
|
||||
// If past rule is invalid forr a field, the current rule should not flip the validity of a field
|
||||
if let validity = previousFieldValidiity[formKey], !validity, fieldValidity {
|
||||
if let validity = previousFieldValidity[formKey], !validity, fieldValidity {
|
||||
fieldValidity = false
|
||||
}
|
||||
(formField as? FormRuleWatcherFieldProtocol)?.setValidity(fieldValidity, rule: self)
|
||||
}
|
||||
}
|
||||
|
||||
return (valid, previousValidity)
|
||||
return (valid: valid, fieldValidity: previousValidity)
|
||||
}
|
||||
}
|
||||
|
||||
@ -26,7 +26,7 @@ public protocol RulesProtocol: ModelProtocol {
|
||||
func isValid(_ formField: FormFieldProtocol) -> Bool
|
||||
|
||||
// Validates the rule and returns the result.
|
||||
func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidiity: [String: Bool]) -> (Bool, [String: Bool])
|
||||
func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidity: [String: Bool]) -> (valid: Bool, fieldValidity: [String: Bool])
|
||||
}
|
||||
|
||||
public extension RulesProtocol {
|
||||
@ -38,21 +38,21 @@ public extension RulesProtocol {
|
||||
static var categoryName: String { "\(RulesProtocol.self)" }
|
||||
|
||||
// Individual rule can override the function to validate based on the rule type.
|
||||
func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidiity: [String: Bool]) -> (Bool, [String: Bool]) {
|
||||
func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidity: [String: Bool]) -> (valid: Bool, fieldValidity: [String: Bool]) {
|
||||
var valid = true
|
||||
var previousValidity: [String: Bool] = [:]
|
||||
for formKey in fields {
|
||||
guard let formField = fieldMolecules[formKey] else { continue }
|
||||
|
||||
var fieldValidity = isValid(formField)
|
||||
// If past rule is invalid forr a field, the current rule should not flip the validity of a field
|
||||
if let validity = previousFieldValidiity[formKey], !validity, fieldValidity {
|
||||
var fieldValidity = isValid(formField)
|
||||
// If past rule is invalid for a field, the current rule should not flip the validity of a field
|
||||
if let validity = previousFieldValidity[formKey], !validity, fieldValidity {
|
||||
fieldValidity = false
|
||||
}
|
||||
(formField as? FormRuleWatcherFieldProtocol)?.setValidity(fieldValidity, rule: self)
|
||||
valid = valid && fieldValidity
|
||||
previousValidity[formKey] = fieldValidity
|
||||
}
|
||||
return (valid, previousValidity)
|
||||
return (valid: valid, fieldValidity: previousValidity)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user