Advertisement
Guest User

Emailage model validator

a guest
Feb 18th, 2020
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.70 KB | None | 0 0
  1. class EmailFraudPreventionValidator < ActiveModel::Validator
  2.   def validate(record)
  3.     emailage_service = User::EmailageService.new(record)
  4.     if emailage_service.valid_customer?
  5.       record.risk_band = emailage_service.risk_band
  6.     else
  7.       emailage_error = error_message(emailage_service.error)
  8.       add_record_error(record, :email, emailage_error)
  9.       record.rejected_reason = emailage_error
  10.     end
  11.   rescue StandardError
  12.     add_record_error(record, :emailage_api_error, emailage_error)
  13.   end
  14.  
  15.   private
  16.  
  17.   def error_message(error)
  18.     I18n.t(error, scope: %i[api customer errors])
  19.   end
  20.  
  21.   def add_record_error(record, field, error)
  22.     record.errors.add(field, error)
  23.   end
  24. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement