Class: Qtc::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/qtc/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_url, default_headers = {}) ⇒ Client

Initialize api client

Parameters:

  • api_url (String)
  • default_headers (Hash) (defaults to: {})


15
16
17
18
19
# File 'lib/qtc/client.rb', line 15

def initialize(api_url, default_headers = {})
  @http_client = HTTPClient.new
  @default_headers = {'Accept' => 'application/json', 'Content-Type' => 'application/json'}.merge(default_headers)
  @api_url = api_url
end

Instance Attribute Details

#default_headersObject

Returns the value of attribute default_headers.



8
9
10
# File 'lib/qtc/client.rb', line 8

def default_headers
  @default_headers
end

#http_clientObject (readonly)

Returns the value of attribute http_client.



9
10
11
# File 'lib/qtc/client.rb', line 9

def http_client
  @http_client
end

Instance Method Details

#delete(path, body = nil, params = {}, headers = {}) ⇒ Hash

Delete request

Parameters:

  • path (String)
  • body (Hash, String) (defaults to: nil)
  • params (Hash) (defaults to: {})
  • headers (Hash) (defaults to: {})

Returns:

  • (Hash)


87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/qtc/client.rb', line 87

def delete(path, body = nil, params = {}, headers = {})
  request_headers = request_headers(headers)
  request_options = {
      header: request_headers,
      body: encode_body(body, request_headers['Content-Type']),
      query: params
  }
  response = http_client.delete(request_uri(path), request_options)
  if response.status == 200
    parse_response(response)
  else
    handle_error_response(response)
  end
end

#get(path, params = nil, headers = {}) ⇒ Hash

Get request

Parameters:

  • path (String)
  • params (Hash, NilClass) (defaults to: nil)

Returns:

  • (Hash)


26
27
28
29
30
31
32
33
# File 'lib/qtc/client.rb', line 26

def get(path, params = nil, headers = {})
  response = http_client.get(request_uri(path), params, request_headers(headers))
  if response.status == 200
    parse_response(response)
  else
    handle_error_response(response)
  end
end

#post(path, obj, params = {}, headers = {}) ⇒ Hash

Post request

Parameters:

  • path (String)
  • obj (Object)
  • params (Hash) (defaults to: {})
  • headers (Hash) (defaults to: {})

Returns:

  • (Hash)


42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/qtc/client.rb', line 42

def post(path, obj, params = {}, headers = {})
  request_headers = request_headers(headers)
  request_options = {
      header: request_headers,
      body: encode_body(obj, request_headers['Content-Type']),
      query: params
  }
  response = http_client.post(request_uri(path), request_options)
  if [200, 201].include?(response.status)
    parse_response(response)
  else
    handle_error_response(response)
  end
end

#put(path, obj, params = {}, headers = {}) ⇒ Hash

Put request

Parameters:

  • path (String)
  • obj (Object)
  • params (Hash) (defaults to: {})
  • headers (Hash) (defaults to: {})

Returns:

  • (Hash)


64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/qtc/client.rb', line 64

def put(path, obj, params = {}, headers = {})
  request_headers = request_headers(headers)
  request_options = {
      header: request_headers,
      body: encode_body(obj, request_headers['Content-Type']),
      query: params
  }

  response = http_client.put(request_uri(path), request_options)
  if [200, 201].include?(response.status)
    parse_response(response)
  else
    handle_error_response(response)
  end
end