Module: Immoscout::Api::Request

Included in:
Client
Defined in:
lib/immoscout/api/request.rb

Overview

An abstract HTTP/API request.

Instance Method Summary collapse

Instance Method Details

#delete(path, payload = nil, multipart = nil) ⇒ Object



19
20
21
# File 'lib/immoscout/api/request.rb', line 19

def delete(path, payload = nil, multipart = nil)
  request(:delete, path, payload, multipart)
end

#get(path, payload = nil, multipart = nil) ⇒ Object



7
8
9
# File 'lib/immoscout/api/request.rb', line 7

def get(path, payload = nil, multipart = nil)
  request(:get, path, payload, multipart)
end

#post(path, payload = nil, multipart = nil) ⇒ Object



11
12
13
# File 'lib/immoscout/api/request.rb', line 11

def post(path, payload = nil, multipart = nil)
  request(:post, path, payload, multipart)
end

#put(path, payload = nil, multipart = nil) ⇒ Object



15
16
17
# File 'lib/immoscout/api/request.rb', line 15

def put(path, payload = nil, multipart = nil)
  request(:put, path, payload, multipart)
end

#request(method, path, payload = nil, multipart = nil) ⇒ Object

rubocop:disable Metrics/MethodLength because of the header handling



24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/immoscout/api/request.rb', line 24

def request(method, path, payload = nil, multipart = nil)
  connection.send(method, path, multipart) do |request|
    if multipart
      request.headers['Content-Type'] = 'multipart/form-data'
    else
      request.body = payload if payload
      request.headers['Content-Type'] = 'application/json;charset=UTF-8'
    end
    request.headers['Accept'] = 'application/json'
    request.headers['User-Agent'] =
      "RubyImmoscout/#{Immoscout::VERSION}"
  end
end