Browse Source

refactor: DRYing

pull/1178/head
natdeanlewissoftwire 3 years ago
parent
commit
7e30cf3293
  1. 13
      app/models/validations/household_validations.rb
  2. 13
      app/models/validations/sales/household_validations.rb
  3. 13
      app/models/validations/shared_validations.rb

13
app/models/validations/household_validations.rb

@ -47,7 +47,7 @@ module Validations::HouseholdValidations
validate_person_age_matches_relationship(record, n) validate_person_age_matches_relationship(record, n)
validate_person_age_and_relationship_matches_economic_status(record, n) validate_person_age_and_relationship_matches_economic_status(record, n)
end end
validate_partner_count(record) shared_validate_partner_count(record, 6)
end end
def validate_person_1_economic(record) def validate_person_1_economic(record)
@ -183,13 +183,6 @@ private
end end
end end
def validate_partner_count(record)
partner_count = (2..8).count { |n| tenant_is_partner?(record["relat#{n}"]) }
if partner_count > 1
record.errors.add :base, I18n.t("validations.household.relat.one_partner")
end
end
def tenant_is_economic_child?(economic_status) def tenant_is_economic_child?(economic_status)
economic_status == 9 economic_status == 9
end end
@ -202,10 +195,6 @@ private
economic_status == 10 economic_status == 10
end end
def tenant_is_partner?(relationship)
relationship == "P"
end
def tenant_is_child?(relationship) def tenant_is_child?(relationship)
relationship == "C" relationship == "C"
end end

13
app/models/validations/sales/household_validations.rb

@ -1,4 +1,6 @@
module Validations::Sales::HouseholdValidations module Validations::Sales::HouseholdValidations
include Validations::SharedValidations
def validate_number_of_other_people_living_in_the_property(record) def validate_number_of_other_people_living_in_the_property(record)
return if record.hholdcount.blank? return if record.hholdcount.blank?
@ -8,15 +10,6 @@ module Validations::Sales::HouseholdValidations
end end
def validate_partner_count(record) def validate_partner_count(record)
partner_count = (2..6).count { |n| tenant_is_partner?(record["relat#{n}"]) } shared_validate_partner_count(record, 8)
if partner_count > 1
record.errors.add :base, I18n.t("validations.household.relat.one_partner")
end
end
private
def tenant_is_partner?(relationship)
relationship == "P"
end end
end end

13
app/models/validations/shared_validations.rb

@ -68,4 +68,17 @@ module Validations::SharedValidations
{ scope: status, date: date&.to_formatted_s(:govuk_date), deactivation_date: closest_reactivation&.deactivation_date&.to_formatted_s(:govuk_date) } { scope: status, date: date&.to_formatted_s(:govuk_date), deactivation_date: closest_reactivation&.deactivation_date&.to_formatted_s(:govuk_date) }
end end
def shared_validate_partner_count(record, max_people)
partner_count = (2..max_people).count { |n| tenant_is_partner?(record["relat#{n}"]) }
if partner_count > 1
record.errors.add :base, I18n.t("validations.household.relat.one_partner")
end
end
private
def tenant_is_partner?(relationship)
relationship == "P"
end
end end

Loading…
Cancel
Save