class Arbetsformedlingen::API::Response

API response object

Attributes

response[R]
uri[R]

Public Class Methods

new(response, uri = nil) click to toggle source

Initialize response

# File lib/arbetsformedlingen/api/response.rb, line 15
def initialize(response, uri = nil)
  @response = response
  @json = nil
  @uri = uri
end

Public Instance Methods

body() click to toggle source

Response body @return [String] the response body

# File lib/arbetsformedlingen/api/response.rb, line 29
def body
  response.read_body
end
json() click to toggle source

Response JSON @return [Hash] response json - empty if JSON is invalid

# File lib/arbetsformedlingen/api/response.rb, line 35
def json
  @json ||= parse_json(body)
end
method_missing(method_name, *arguments, &block) click to toggle source

Delegate missing values to response

Calls superclass method
# File lib/arbetsformedlingen/api/response.rb, line 46
def method_missing(method_name, *arguments, &block)
  if response.respond_to?(method_name)
    response.public_send(method_name, *arguments, &block)
  else
    super
  end
end
respond_to_missing?(method_name, include_private = false) click to toggle source

Return true if missing method can be delegated

Calls superclass method
# File lib/arbetsformedlingen/api/response.rb, line 55
def respond_to_missing?(method_name, include_private = false)
  response.respond_to?(method_name) || super
end
success?() click to toggle source

True if response is 200 @return [Boolean] true if response code is 200

# File lib/arbetsformedlingen/api/response.rb, line 23
def success?
  response.code == '200'
end
xml() click to toggle source

Response XML @return [Nokogiri::XML::Document] response - empty is XML is invalid

# File lib/arbetsformedlingen/api/response.rb, line 41
def xml
  @xml ||= parse_xml(body)
end

Private Instance Methods

parse_json(string) click to toggle source
# File lib/arbetsformedlingen/api/response.rb, line 63
def parse_json(string)
  JSON.parse(string.to_s)
rescue JSON::ParserError => _e
  {}
end
parse_xml(string) click to toggle source
# File lib/arbetsformedlingen/api/response.rb, line 69
def parse_xml(string)
  Nokogiri::XML(string).tap(&:remove_namespaces!)
end