Module: Almodovar::HttpAccessor

Included in:
Resource, ResourceCollection, SingleResource
Defined in:
lib/almodovar/http_accessor.rb

Instance Method Summary collapse

Instance Method Details

#check_errors(response, url, query_params = {}) ⇒ Object



32
33
34
35
36
37
# File 'lib/almodovar/http_accessor.rb', line 32

def check_errors(response, url, query_params = {})
  if response.status >= 400
    http_error_klass = Almodovar::HTTP_ERRORS[response.status] || Almodovar::HttpError
    raise http_error_klass.new(response, url, query_params)
  end
end

#httpObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/almodovar/http_accessor.rb', line 16

def http
  @http ||= Almodovar::HttpClient.new.tap do |session|
    session.send_timeout = Almodovar::default_options[:send_timeout]
    session.connect_timeout = Almodovar::default_options[:connect_timeout]
    session.receive_timeout = Almodovar::default_options[:receive_timeout]
    session.agent_name = Almodovar::default_options[:user_agent]

    if @auth
      session.force_basic_auth = Almodovar::default_options[:force_basic_auth]
      session.username = @auth.username
      session.password = @auth.password
      session.auth_type = :digest
    end
  end
end

#query_paramsObject



11
12
13
14
# File 'lib/almodovar/http_accessor.rb', line 11

def query_params
  @options[:expand] = @options[:expand].join(",") if @options[:expand].is_a?(Array)
  @options
end

#xmlObject



3
4
5
6
7
8
9
# File 'lib/almodovar/http_accessor.rb', line 3

def xml
  @xml ||= begin
    response = http.get(@url, query_params)
    check_errors(response, @url, query_params)
    Nokogiri::XML.parse(response.body).root
  end
end