class RealPage::Validator::RequestFault
Ensure there is no 'Fault' node in the response body
Attributes
request_name[R]
request_params[R]
response[R]
Public Class Methods
new(response, request_params = nil, request_name = nil)
click to toggle source
@param response [Hash<String, Object>] the XML response parsed into a
Hash
# File lib/real_page/validator/request_fault.rb, line 10 def initialize(response, request_params = nil, request_name = nil) @response = response @request_params = request_params @request_name = request_name end
Public Instance Methods
validate!()
click to toggle source
@raise [RealPage::Error::RequestFault] if the response has a fault
# File lib/real_page/validator/request_fault.rb, line 17 def validate! return unless error? send_error_to_snowflake raise Error::RequestFault.new(error_message, fault_code, details) end
Private Instance Methods
details()
click to toggle source
# File lib/real_page/validator/request_fault.rb, line 31 def details return unless fault['detail'] app_fault = fault['detail']['RPXApplicationFault'] Error::RequestFault::Details.new( custom_message: app_fault['CustomMessage'], exception_message: app_fault['ExceptionMessage'], log_id: app_fault['LogId'] ) end
error?()
click to toggle source
# File lib/real_page/validator/request_fault.rb, line 41 def error? !fault.nil? end
error_message()
click to toggle source
# File lib/real_page/validator/request_fault.rb, line 52 def error_message fault['faultstring']['__content__'] if fault end
fault()
click to toggle source
# File lib/real_page/validator/request_fault.rb, line 27 def fault response['s:Envelope']['s:Body']['s:Fault'] end
fault_code()
click to toggle source
# File lib/real_page/validator/request_fault.rb, line 45 def fault_code return unless fault code = fault['faultcode'] code = code['__content__'] if code.is_a?(Hash) code.strip end
send_error_to_snowflake()
click to toggle source
# File lib/real_page/validator/request_fault.rb, line 56 def send_error_to_snowflake case request_name when 'GetLeasesByTrafficSource' send_move_in_report_error_to_snowflake when 'ProspectSearch' send_prospect_search_error_to_snowflake end end
send_move_in_report_error_to_snowflake()
click to toggle source
# File lib/real_page/validator/request_fault.rb, line 65 def send_move_in_report_error_to_snowflake Utils::SnowflakeEventTracker.track_pms_resident_event( import_resident_id: request_params[:import_id] || '', api_name: request_name, resident_type: 'PRIMARY', request_params: request_params, phones_count: 0, unit_name: '', error: error_message ) end
send_prospect_error_to_snowflake()
click to toggle source
# File lib/real_page/validator/request_fault.rb, line 94 def send_prospect_error_to_snowflake Utils::SnowflakeEventTracker.track_pms_prospect_event( resident_type: 'PRIMARY', request_params: request_params, error: error_message ) end
send_prospect_search_error_to_snowflake()
click to toggle source
# File lib/real_page/validator/request_fault.rb, line 77 def send_prospect_search_error_to_snowflake send_roommate_error_to_snowflake send_prospect_error_to_snowflake end
send_roommate_error_to_snowflake()
click to toggle source
# File lib/real_page/validator/request_fault.rb, line 82 def send_roommate_error_to_snowflake Utils::SnowflakeEventTracker.track_pms_resident_event( import_resident_id: request_params[:import_id] || '', api_name: request_name, resident_type: 'ROOMMATE', request_params: request_params, phones_count: 0, unit_name: '', error: error_message ) end