Class: MyTargetApi::Request

Inherits:
Object
  • Object
show all
Included in:
Auth
Defined in:
lib/my_target_api/request.rb

Overview

Requests

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Request

Returns a new instance of Request.



10
11
12
# File 'lib/my_target_api/request.rb', line 10

def initialize(options = {})
  @logger = options[:logger]
end

Instance Method Details

#body_parameters(params) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/my_target_api/request.rb', line 38

def body_parameters(params)
  result_params = params.dup
  result_params.delete(:access_token)

  if params.values.any? { |param| param.is_a? IO } || params[:grant_type]
    params.map do |name, value|
      [name, value.is_a?(Array) || value.is_a?(Hash) ? value.to_json : value]
    end.to_h
  else
    params.to_json
  end
end

#delete(url, params = {}) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/my_target_api/request.rb', line 30

def delete(url, params = {})
  with_exception_handling do
    RestClient.delete(url, headers(params).merge(params: header_parameters(params)))
  end

  true
end

#get(url, params = {}) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/my_target_api/request.rb', line 14

def get(url, params = {})
  response = with_exception_handling do
    RestClient.get(url, headers(params).merge(params: header_parameters(params)))
  end

  process_response(response)
end

#header_parameters(params) ⇒ Object



51
52
53
54
55
# File 'lib/my_target_api/request.rb', line 51

def header_parameters(params)
  result_params = params.dup
  result_params.delete(:access_token)
  result_params
end

#headers(params) ⇒ Object



57
58
59
# File 'lib/my_target_api/request.rb', line 57

def headers(params)
  { Authorization: "Bearer #{params[:access_token]}" }
end

#post(url, params = {}) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/my_target_api/request.rb', line 22

def post(url, params = {})
  response = with_exception_handling do
    RestClient.post(url, body_parameters(params), headers(params))
  end

  process_response(response)
end

#process_response(response) ⇒ Object



61
62
63
64
65
# File 'lib/my_target_api/request.rb', line 61

def process_response(response)
  JSON.parse(response.body)
rescue JSON::ParserError
  response.body
end

#with_exception_handlingObject



67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/my_target_api/request.rb', line 67

def with_exception_handling
  response = yield
  logger << response if logger
  response
rescue RestClient::Unauthorized, RestClient::Forbidden,
       RestClient::BadRequest, RestClient::RequestFailed,
       RestClient::ResourceNotFound => e

  log_rest_client_exception(e)
  raise MyTargetApi::RequestError, e
rescue SocketError => e
  raise MyTargetApi::ConnectionError, e
end