Class: ChargeBee::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/chargebee/request.rb

Class Method Summary collapse

Class Method Details

.send(method, url, params = {}, env = nil, headers = {}, sub_domain = nil, isJsonRequest = nil, jsonKeys = {}, options = {}, telemetry_resource = nil, telemetry_operation = nil) ⇒ Object



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
42
# File 'lib/chargebee/request.rb', line 15

def self.send(method, url, params={}, env=nil, headers={}, sub_domain=nil, isJsonRequest=nil, jsonKeys={}, options={}, telemetry_resource=nil, telemetry_operation=nil)
  telemetry_resource, telemetry_operation = normalize_telemetry_args(telemetry_resource, telemetry_operation)
  env ||= ChargeBee.default_env
  ser_params = isJsonRequest ? params : Util.serialize(params, nil, nil, jsonKeys)
  http_url = TelemetryExecutor.build_http_url(env, sub_domain, url)
  normalized_headers = headers || {}

  TelemetryExecutor.execute(
    env,
    telemetry_resource: telemetry_resource,
    telemetry_operation: telemetry_operation,
    method: method,
    http_url: http_url,
    request_headers: normalized_headers,
  ) do |telemetry_headers|
    merged_headers = normalized_headers.dup
    if telemetry_headers
      telemetry_headers.each { |key, value| merged_headers[key] = value }
    end
    resp, rheaders, rcode = NativeRequest.request(method, url, env, ser_params||={}, merged_headers, sub_domain, isJsonRequest, options)
    result = if resp && resp.has_key?(:list)
      ListResult.new(resp[:list], resp[:next_offset], rheaders, rcode)
    else
      Result.new(resp, rheaders, rcode)
    end
    [rcode.to_i, result]
  end
end

.send_list_request(method, url, params = {}, env = nil, headers = {}, sub_domain = nil, isJsonRequest = nil, jsonKeys = {}, options = {}, telemetry_resource = nil, telemetry_operation = nil) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'lib/chargebee/request.rb', line 4

def self.send_list_request(method, url, params={}, env=nil, headers={}, sub_domain=nil, isJsonRequest=nil, jsonKeys={}, options={}, telemetry_resource=nil, telemetry_operation=nil)
  serialized = {}
  params.each do |k, v|
    if(v.kind_of? Array)
      v = v.to_json
    end
    serialized["#{k}"] = v
  end
  self.send(method, url, serialized, env, headers, sub_domain, isJsonRequest, jsonKeys, options, telemetry_resource, telemetry_operation)
end