class Snapcat::Response

Constants

RECOGNIZED_CONTENT_TYPES

Attributes

code[R]
data[R]
http_success[R]

Public Class Methods

new(response, additional_fields = {}) click to toggle source
# File lib/snapcat/response.rb, line 6
def initialize(response, additional_fields = {})
  @data = formatted_result(response).merge(additional_fields)
  @code = response.code
  @http_success = response.success?
end

Public Instance Methods

auth_token() click to toggle source
# File lib/snapcat/response.rb, line 12
def auth_token
  @data[:auth_token]
end
success?() click to toggle source
# File lib/snapcat/response.rb, line 16
def success?
  if !@data[:logged].nil?
    !!@data[:logged]
  else
    @http_success
  end
end

Private Instance Methods

format_recognized_content(content_type, content) click to toggle source
# File lib/snapcat/response.rb, line 26
def format_recognized_content(content_type, content)
  if content_type.include? 'application/json'
    JSON.parse(content, symbolize_names: true)
  elsif content_type.include? 'application/octet-stream'
    { media: Media.new(content) }
  end
end
formatted_result(response) click to toggle source
# File lib/snapcat/response.rb, line 34
def formatted_result(response)
  if !response_empty?(response) && recognized_content_type?(response.content_type)
    format_recognized_content(response.content_type, response.body)
  else
    {}
  end
end
recognized_content_type?(content_type) click to toggle source
# File lib/snapcat/response.rb, line 42
def recognized_content_type?(content_type)
  RECOGNIZED_CONTENT_TYPES.detect do |recognized_content_type|
    content_type.include? recognized_content_type
  end
end
response_empty?(response) click to toggle source
# File lib/snapcat/response.rb, line 48
def response_empty?(response)
  response.body.to_s.empty?
end