class Immobilienscout::ResponseParser

Constants

HTTP_OK
Message

Public Class Methods

new(response) click to toggle source
# File lib/immobilienscout/response_parser.rb, line 9
def initialize(response)
  @response = response

  raise ArgumentError unless valid?
end

Public Instance Methods

call() click to toggle source
# File lib/immobilienscout/response_parser.rb, line 15
def call
  response_body = JSON.parse(@response.body)

  Message.new(success?, code, messages(response_body), id(response_body))
end

Private Instance Methods

code() click to toggle source
# File lib/immobilienscout/response_parser.rb, line 31
def code
  @response.code
end
id(response_body) click to toggle source
# File lib/immobilienscout/response_parser.rb, line 43
def id(response_body)
  return unless response_body['common.messages']

  messages = response_body['common.messages'].first['message']
  messages['id'] if messages.is_a? Hash
end
messages(response_body) click to toggle source
# File lib/immobilienscout/response_parser.rb, line 35
def messages(response_body)
  return response_body unless response_body['common.messages']

  messages = response_body['common.messages'].first['message']
  messages = [messages] if messages.is_a? Hash
  messages.map { |msg| Message.new(nil, msg['messageCode'], msg['message'], msg['id']) }
end
success?() click to toggle source
# File lib/immobilienscout/response_parser.rb, line 27
def success?
  HTTP_OK.include? @response.code
end
valid?() click to toggle source
# File lib/immobilienscout/response_parser.rb, line 23
def valid?
  @response.present?
end