class GnipApi::Response
Constants
- OK_STATUSES
List of codes that are considered OK
Attributes
body[R]
headers[R]
request[R]
status[R]
Public Class Methods
new(request, status, body, headers)
click to toggle source
# File lib/gnip_api/response.rb, line 8 def initialize request, status, body, headers @status = status @body = body @headers = headers @request = request end
Public Instance Methods
check_for_errors!()
click to toggle source
# File lib/gnip_api/response.rb, line 46 def check_for_errors! if ok? GnipApi.logger.info "#{request_method} request to #{request_uri} returned with status #{status} OK" GnipApi.logger.debug "Headers -> #{headers.inspect}" GnipApi.logger.debug "Body -> #{body.inspect}" GnipApi.logger.debug "Request headers -> #{request.headers.inspect}" GnipApi.logger.debug "Request payload -> #{request.payload.inspect}" else GnipApi.logger.error "#{request_method} request to #{request_uri} returned with status #{status} FAIL" GnipApi.logger.debug "Headers -> #{headers.inspect}" GnipApi.logger.debug "Body -> #{body.inspect}" GnipApi.logger.debug "Request headers -> #{request.headers.inspect}" GnipApi.logger.debug "Request payload -> #{request.payload.inspect}" raise GnipApi::Errors::Adapter::GnipSoftwareError.new error_message if status == 503 raise GnipApi::Errors::Adapter::RateLimitError.new error_message if status == 429 raise GnipApi::Errors::Adapter::InvalidInput.new(error_message) if status == 422 raise GnipApi::Errors::Adapter::RequestError.new("Status #{status} #{error_message}") end end
error_message()
click to toggle source
# File lib/gnip_api/response.rb, line 27 def error_message if @body && !@body.empty? parsed = GnipApi::JsonParser.new.parse(@body) if rules_summary? parsed created = parsed["summary"]["created"] failed = parsed["summary"]["not_created"] timstamp = parsed["sent"] log_rule_failures(parsed) return "Invalid rules: created #{created}, failed #{failed} verify and try again" elsif generic_error? parsed message = parsed['error']['message'] message += " - TID: #{parsed['error']['transactionId']}" if parsed['error']['transactionId'] return message else return "Unknown error" end end end
ok?()
click to toggle source
# File lib/gnip_api/response.rb, line 23 def ok? OK_STATUSES.include? @status end
request_method()
click to toggle source
# File lib/gnip_api/response.rb, line 15 def request_method @request.request_method end
request_uri()
click to toggle source
# File lib/gnip_api/response.rb, line 19 def request_uri @request.uri end
Private Instance Methods
generic_error?(data)
click to toggle source
# File lib/gnip_api/response.rb, line 80 def generic_error? data data.keys.include? "error" end
log_rule_failures(data)
click to toggle source
# File lib/gnip_api/response.rb, line 67 def log_rule_failures data message = "Invalid rules (422):\n" data["detail"].each do |rule| message += "Rule: #{rule['value']}\n" message += "Reason: #{rule['message']}\n\n" end GnipApi.logger.error message end
rules_summary?(data)
click to toggle source
# File lib/gnip_api/response.rb, line 76 def rules_summary? data data.keys.include? "summary" end