Class: MyTargetApi::Request
- Inherits:
-
Object
- Object
- MyTargetApi::Request
- Included in:
- Auth
- Defined in:
- lib/my_target_api/request.rb
Overview
Requests
Instance Method Summary collapse
- #body_parameters(params) ⇒ Object
- #delete(url, params = {}) ⇒ Object
- #get(url, params = {}) ⇒ Object
- #header_parameters(params) ⇒ Object
- #headers(params) ⇒ Object
-
#initialize(options = {}) ⇒ Request
constructor
A new instance of Request.
- #post(url, params = {}) ⇒ Object
- #process_response(response) ⇒ Object
- #with_exception_handling ⇒ Object
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( = {}) @logger = [: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_handling ⇒ Object
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::, 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 |