Module: NCore::Client::ClassMethods

Defined in:
lib/ncore/client.rb

Instance Method Summary collapse

Instance Method Details

#request(method, url, request_credentials, params = {}, headers = {}) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/ncore/client.rb', line 7

def request(method, url, request_credentials, params={}, headers={})
  request_credentials ||= retrieve_credentials
  request_credentials = parse_credentials(request_credentials)

  base_url = request_credentials[:url] || retrieve_default_url
  base_url << '/' unless base_url.ends_with?('/')
  url = base_url + url

  headers = build_headers(headers, request_credentials.except(:url))

  path = URI.parse(url).path
  if [:get, :head, :delete].include? method
    qs = build_query_string params
    url += qs
    path += qs
    payload = nil
  else
    payload = MultiJson.encode params
  end

  rest_opts = {
    body: payload,
    # connect_timeout: 10,
    headers: headers,
    method: method,
    path: path,
    read_timeout: 50,
    url: url,
    write_timeout: 50,
  }

  response = execute_request(rest_opts)
  parsed = parse_response(response)
  [parsed, request_credentials]
end