Class: OSTSdk::Util::HTTPHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/ost-sdk-ruby/util/http_helper.rb

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ HTTPHelper

Initialize

Arguments:

api_base_url: (String)
api_key: (String)
api_secret: (String)
api_spec: (Boolean)


21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/ost-sdk-ruby/util/http_helper.rb', line 21

def initialize(params)
  @api_base_url = params[:api_base_url]
  @api_key = params[:api_key]
  @api_secret = params[:api_secret]
  @api_spec = params[:api_spec]
  @timeout = 60
  if (params.key?(:config))
    config = params[:config]
    if (config.key?(:timeout))
      @timeout = config[:timeout]
    end
  end
end

Instance Method Details

#get_signature_for_test(endpoint, request_params) ⇒ Object

Generate a signature for test case. It only creates a signature for a given Hash

Arguments:

end_point: (String)
request_params: (Hash)

Returns:

response: (String)


120
121
122
123
124
# File 'lib/ost-sdk-ruby/util/http_helper.rb', line 120

def get_signature_for_test(endpoint, request_params)
  escaped_query_string = get_escaped_query_string(request_params)
  string_to_sign = "#{endpoint}?#{escaped_query_string}"
  generate_signature(string_to_sign)
end

#send_delete_request(endpoint, request_params) ⇒ Object

Send DELETE requests

Arguments:

end_point: (String)
request_params: (Hash)

Returns:

response: (Hash)


93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/ost-sdk-ruby/util/http_helper.rb', line 93

def send_delete_request(endpoint, request_params)
  perform_and_handle_exceptions('u_hh_3', 'DELETE request Failed') do
    escaped_query_string = get_query_string(endpoint, request_params)
    raw_url = get_api_url(endpoint) + "?#{escaped_query_string}"
    uri = URI(raw_url)
    http = setup_request(uri)
    if @api_spec
      return {request_uri: uri.to_s.split("?")[0], request_type: 'DELETE', request_params: escaped_query_string}
    else
      result = {}
      Timeout.timeout(@timeout) do
        result = http.delete(uri)
      end
      return format_response(result)
    end
  end
end

#send_get_request(endpoint, request_params) ⇒ Object

Send GET requests

Arguments:

end_point: (String)
request_params: (Hash)

Returns:

response: (Hash)


67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/ost-sdk-ruby/util/http_helper.rb', line 67

def send_get_request(endpoint, request_params)
  perform_and_handle_exceptions('u_hh_2', 'GET request Failed') do
    escaped_query_string = get_query_string(endpoint, request_params)
    raw_url = get_api_url(endpoint) + "?#{escaped_query_string}"
    uri = URI(raw_url)
    if @api_spec
      return {request_uri: uri.to_s.split("?")[0], request_type: 'GET', request_params: escaped_query_string}
    else
      result = {}
      Timeout.timeout(@timeout) do
        result = Net::HTTP.get_response(uri)
      end
      return format_response(result)
    end
  end
end

#send_post_request(endpoint, request_params) ⇒ Object

Send POST requests

Arguments:

end_point: (String)
request_params: (Hash)

Returns:

response: (Hash)


44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/ost-sdk-ruby/util/http_helper.rb', line 44

def send_post_request(endpoint, request_params)
  perform_and_handle_exceptions('u_hh_1', 'POST request failed') do
    escaped_query_string = get_query_string(endpoint, request_params)
    uri = URI(get_api_url(endpoint))
    http = setup_request(uri)
    if @api_spec
      return {request_uri: uri.to_s, request_type: 'POST', request_params: escaped_query_string}
    else
      result = http.post(uri.path, escaped_query_string)
      return format_response(result)
    end
  end
end