class PhoneConnect::RealPhoneValidation
Attributes
execution_time[R]
phone_number[R]
Public Class Methods
new(phone_number)
click to toggle source
# File lib/phone_connect/real_phone_validation.rb, line 10 def initialize(phone_number) @phone_number = phone_number normalize! end
Public Instance Methods
connected?()
click to toggle source
# File lib/phone_connect/real_phone_validation.rb, line 15 def connected? status = response['status'] return false unless status !!status.match(/^(connected|connected-75|busy|pending)$/i) end
dnc_response()
click to toggle source
# File lib/phone_connect/real_phone_validation.rb, line 26 def dnc_response @parsed_response ||= dnc_validate end
response()
click to toggle source
# File lib/phone_connect/real_phone_validation.rb, line 22 def response @parsed_response ||= validate end
Private Instance Methods
dnc_validate()
click to toggle source
# File lib/phone_connect/real_phone_validation.rb, line 70 def dnc_validate start_time = Time.now retries = 3 result = {} begin result = self.class.post('/rpvWebService/DNCLookup.php', options).parsed_response rescue Timeout::Error retries -= 1 if retries.positive? sleep 1; retry end result = { 'status' => 'TIMEOUT', 'error_text' => 'Timeout' } rescue Exception => exception result = { 'status' => 'ERROR', 'error_text' => exception.to_s } end @execution_time = Time.now - start_time result end
normalize!()
click to toggle source
# File lib/phone_connect/real_phone_validation.rb, line 32 def normalize! @phone_number = @phone_number.to_s.gsub(/[^0-9]/, '') # Remove first digit `1` (US key) if the phone's length is 11 digits @phone_number[0] = '' if @phone_number.length == 11 && @phone_number[0] == '1' end
options()
click to toggle source
# File lib/phone_connect/real_phone_validation.rb, line 38 def options { verify: false, timeout: PhoneConnect.configuration.timeout, body: { output: 'json', token: PhoneConnect.configuration.token, phone: @phone_number } } end
validate()
click to toggle source
# File lib/phone_connect/real_phone_validation.rb, line 50 def validate start_time = Time.now retries = 3 result = {} begin result = self.class.post('/rpvWebService/RealPhoneValidationTurbo.php', options).parsed_response rescue Timeout::Error retries -= 1 if retries.positive? sleep 1; retry end result = { 'status' => 'TIMEOUT', 'error_text' => 'Timeout' } rescue Exception => exception result = { 'status' => 'ERROR', 'error_text' => exception.to_s } end @execution_time = Time.now - start_time result end