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(environment, credentials, api_spec) ⇒ HTTPHelper

Initialize

Arguments:

environment: (String)
credentials: (OSTSdk::Util::APICredentials)
api_spec: (Boolean)


20
21
22
23
24
25
# File 'lib/ost-sdk-ruby/util/http_helper.rb', line 20

def initialize(environment, credentials, api_spec)
  set_api_base_url(environment)
  @api_key = credentials.api_key
  @api_secret = credentials.api_secret
  @api_spec = api_spec
end

Instance Method Details

#send_get_request(endpoint, request_params) ⇒ Object

Send GET requests

Arguments:

end_point: (String)
request_params: (Hash)

Returns:

OSTSdk::Util::Result


60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/ost-sdk-ruby/util/http_helper.rb', line 60

def send_get_request(endpoint, request_params)
  perform_and_handle_exceptions('u_hh_2', 'GET request Failed') do
    base_params = get_base_params(endpoint, request_params)
    r_params = base_params.merge(request_params)
    uri = URI(get_api_url(endpoint))
    uri.query = URI.encode_www_form(r_params)
    if @api_spec
      return OSTSdk::Util::Result.success({data: {request_uri: uri.to_s.split("?")[0], request_type: 'GET', request_params: hash_to_query_string(r_params)}})
    else
      result = Net::HTTP.get_response(uri)
      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:

OSTSdk::Util::Result


36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/ost-sdk-ruby/util/http_helper.rb', line 36

def send_post_request(endpoint, request_params)
  perform_and_handle_exceptions('u_hh_1', 'POST request failed') do
    base_params = get_base_params(endpoint, request_params)
    uri = post_api_uri(endpoint)
    http = setup_request(uri)
    r_params = base_params.merge(request_params)
    if @api_spec
      return OSTSdk::Util::Result.success({data: {request_uri: uri.to_s, request_type: 'POST', request_params: hash_to_query_string(r_params)}})
    else
      result = http.post(uri.path, hash_to_query_string(r_params))
      return format_response(result)
    end
  end
end