refactors management/validations/email validations

This commit is contained in:
kikito
2015-10-09 13:47:25 +02:00
parent 6da7854152
commit 99bb082555

View File

@@ -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