Module: Immobilienscout24::Api::Request

Included in:
Immobilienscout24::Api
Defined in:
lib/immobilienscout24/api/request.rb,
lib/immobilienscout24/api/request/xml.rb,
lib/immobilienscout24/api/request/base.rb,
lib/immobilienscout24/api/request/json.rb

Defined Under Namespace

Classes: Base, Json, Xml

Instance Method Summary collapse

Instance Method Details

#delete(path, request_data = nil, &block) ⇒ Object



17
18
19
# File 'lib/immobilienscout24/api/request.rb', line 17

def delete(path, request_data = nil, &block)
  request(:delete, path, request_data, &block)
end

#get(path, request_data = nil, &block) ⇒ Object



5
6
7
# File 'lib/immobilienscout24/api/request.rb', line 5

def get(path, request_data = nil, &block)
  request(:get, path, request_data, &block)
end

#last_responseObject



52
53
54
# File 'lib/immobilienscout24/api/request.rb', line 52

def last_response
  @last_response
end

#post(path, request_data = nil, &block) ⇒ Object



9
10
11
# File 'lib/immobilienscout24/api/request.rb', line 9

def post(path, request_data = nil, &block)
  request(:post, path, request_data, &block)
end

#put(path, request_data = nil, &block) ⇒ Object



13
14
15
# File 'lib/immobilienscout24/api/request.rb', line 13

def put(path, request_data = nil, &block)
  request(:put, path, request_data, &block)
end

#request(method, path, request_data = nil, &block) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/immobilienscout24/api/request.rb', line 21

def request(method, path, request_data = nil, &block)
  @last_response = response = connection.send(method) do |request|
    request_config = {method: method, path: path, request_data: request_data, request_options: request_options}
    strategy = configuration.request_strategy.new(request, request_config)
    configured_request = strategy.configure

    yield configured_request if block_given?
  end

  return @last_response if request_options[:raw_response]

  @last_response = response.body
  @last_response
end

#request_option_defaultsObject



48
49
50
# File 'lib/immobilienscout24/api/request.rb', line 48

def request_option_defaults
  {raw_response: false, raw_request: false}
end

#request_optionsObject



44
45
46
# File 'lib/immobilienscout24/api/request.rb', line 44

def request_options
  @request_options ||= {}
end

#with_request_options(options = {}) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/immobilienscout24/api/request.rb', line 36

def with_request_options(options = {})
  @request_options = request_option_defaults.merge(options)

  yield self
ensure
  @request_options = {}
end