diff --git a/app/models/verification/management/email.rb b/app/models/verification/management/email.rb index 5b7593673..bb284ea2b 100644 --- a/app/models/verification/management/email.rb +++ b/app/models/verification/management/email.rb @@ -8,6 +8,7 @@ class Verification::Management::Email validates :document_type, :document_number, :email, presence: true validates :email, format: { with: Devise.email_regexp }, allow_blank: true validate :validate_user + validate :validate_document_number delegate :username, to: :user, allow_nil: true @@ -32,25 +33,29 @@ class Verification::Management::Email true end - def already_verified? - user? && user.level_three_verified? - end + private - def document_number_mismatch? - user? && user.document_number.present? && - (user.document_number != document_number || user.document_type != document_type) - end - - def validate_user - return if errors.count > 0 - errors.add(:email, I18n.t('errors.messages.user_not_found')) unless user? - if already_verified? - errors.add(:email, I18n.t('management.email_verifications.already_verified')) - elsif document_number_mismatch? - errors.add(:email, - I18n.t('management.email_verifications.document_mismatch', - document_type: ApplicationController.helpers.humanize_document_type(user.document_type), - document_number: user.document_number)) + def validate_user + return if errors.count > 0 + if !user? + errors.add(:email, I18n.t('errors.messages.user_not_found')) + elsif user.level_three_verified? + errors.add(:email, I18n.t('management.email_verifications.already_verified')) + end + end + + def validate_document_number + return if errors.count > 0 + if document_number_mismatch? + errors.add(:email, + I18n.t('management.email_verifications.document_mismatch', + document_type: ApplicationController.helpers.humanize_document_type(user.document_type), + document_number: user.document_number)) + end + end + + def document_number_mismatch? + user? && user.document_number.present? && + (user.document_number != document_number || user.document_type != document_type) end - end end