Class: Users::PhoneNumberValidation
Constant Summary
collapse
- SMS_SEND_WAIT_TIMES =
SMS send attempts subsequent to the first one will have wait times of 1
min, 3 min, 5 min after each one respectively. Wait time between the fifth
attempt and so on will be 10 minutes.
[1.minute, 3.minutes, 5.minutes, 10.minutes].freeze
ApplicationRecord::MAX_PLUCK
HasCheckConstraints::NOT_NULL_CHECK_PATTERN
ResetOnColumnErrors::MAX_RESET_PERIOD
Class Method Summary
collapse
Instance Method Summary
collapse
===, cached_column_list, #create_or_load_association, current_transaction, declarative_enum, default_select_columns, delete_all_returning, #deleted_from_database?, id_in, id_not_in, iid_in, nullable_column?, primary_key_in, #readable_by?, safe_ensure_unique, safe_find_or_create_by, safe_find_or_create_by!, #to_ability_name, underscore, where_exists, where_not_exists, with_fast_read_statement_timeout, without_order
#sharding_organization
#reset_on_union_error, #reset_on_unknown_attribute_error
#serializable_hash
Class Method Details
.by_reference_id(ref_id) ⇒ Object
65
66
67
|
# File 'app/models/users/phone_number_validation.rb', line 65
def self.by_reference_id(ref_id)
find_by(telesign_reference_xid: ref_id)
end
|
55
56
57
58
59
60
61
62
63
|
# File 'app/models/users/phone_number_validation.rb', line 55
def self.related_to_banned_user?(international_dial_code, phone_number)
joins(:banned_user)
.where(
international_dial_code: international_dial_code,
phone_number: phone_number
)
.where.not(validated_at: nil)
.exists?
end
|
Instance Method Details
#duplicate_records ⇒ Object
51
52
53
|
# File 'app/models/users/phone_number_validation.rb', line 51
def duplicate_records
self.class.similar_to(self).where.not(user: user)
end
|
#similar_records ⇒ Object
47
48
49
|
# File 'app/models/users/phone_number_validation.rb', line 47
def similar_records
self.class.similar_to(self).includes(:user)
end
|
#sms_send_allowed_after ⇒ Object
73
74
75
76
77
78
79
80
81
82
|
# File 'app/models/users/phone_number_validation.rb', line 73
def sms_send_allowed_after
return if sms_send_count < 1
return unless sms_sent_at
max_wait_time = SMS_SEND_WAIT_TIMES.last
wait_time = SMS_SEND_WAIT_TIMES.fetch(sms_send_count - 1, max_wait_time)
sms_sent_at + wait_time
end
|
#validated? ⇒ Boolean
69
70
71
|
# File 'app/models/users/phone_number_validation.rb', line 69
def validated?
validated_at.present?
end
|