Class: Sevendigital::ApiRequest
- Inherits:
-
Object
- Object
- Sevendigital::ApiRequest
- Defined in:
- lib/sevendigital/api_request.rb
Overview
Abstraction of a HTTP API request, ApiOperator uses this ApiRequest to build a real HTTP requests
Constant Summary collapse
- WRAPPER_PARAMETERS =
[:cache_max_age]
Instance Attribute Summary collapse
-
#api_method ⇒ Object
readonly
:nodoc:.
-
#api_service ⇒ Object
Returns the value of attribute api_service.
- #form_parameters ⇒ Object
-
#http_method ⇒ Object
Returns the value of attribute http_method.
-
#options ⇒ Object
readonly
:nodoc:.
-
#parameters ⇒ Object
readonly
:nodoc:.
-
#signature_scheme ⇒ Object
Returns the value of attribute signature_scheme.
-
#signed ⇒ Object
readonly
:nodoc:.
-
#token ⇒ Object
Returns the value of attribute token.
Instance Method Summary collapse
- #comb_parameter(parameters, correct_name, alternative_names) ⇒ Object
- #comb_parameters(params) ⇒ Object
-
#initialize(http_method, api_method, parameters, options = nil) ⇒ ApiRequest
constructor
A new instance of ApiRequest.
- #remove_empty_parameters(parameters) ⇒ Object
- #remove_wrapper_options(parameters) ⇒ Object
- #require_secure_connection ⇒ Object
- #require_signature ⇒ Object
- #requires_secure_connection? ⇒ Boolean
- #requires_signature? ⇒ Boolean
Constructor Details
#initialize(http_method, api_method, parameters, options = nil) ⇒ ApiRequest
Returns a new instance of ApiRequest.
13 14 15 16 17 18 19 20 21 |
# File 'lib/sevendigital/api_request.rb', line 13 def initialize(http_method, api_method, parameters, =nil) @api_method = api_method @parameters = parameters @options = || Hash.new @signature_scheme = :header @http_method = http_method comb_parameters(parameters) @form_parameters = Hash.new end |
Instance Attribute Details
#api_method ⇒ Object (readonly)
:nodoc:
6 7 8 |
# File 'lib/sevendigital/api_request.rb', line 6 def api_method @api_method end |
#api_service ⇒ Object
Returns the value of attribute api_service.
7 8 9 |
# File 'lib/sevendigital/api_request.rb', line 7 def api_service @api_service end |
#form_parameters ⇒ Object
23 24 25 |
# File 'lib/sevendigital/api_request.rb', line 23 def form_parameters comb_parameters(@form_parameters) end |
#http_method ⇒ Object
Returns the value of attribute http_method.
7 8 9 |
# File 'lib/sevendigital/api_request.rb', line 7 def http_method @http_method end |
#options ⇒ Object (readonly)
:nodoc:
6 7 8 |
# File 'lib/sevendigital/api_request.rb', line 6 def @options end |
#parameters ⇒ Object (readonly)
:nodoc:
6 7 8 |
# File 'lib/sevendigital/api_request.rb', line 6 def parameters @parameters end |
#signature_scheme ⇒ Object
Returns the value of attribute signature_scheme.
8 9 10 |
# File 'lib/sevendigital/api_request.rb', line 8 def signature_scheme @signature_scheme end |
#signed ⇒ Object (readonly)
:nodoc:
6 7 8 |
# File 'lib/sevendigital/api_request.rb', line 6 def signed @signed end |
#token ⇒ Object
Returns the value of attribute token.
7 8 9 |
# File 'lib/sevendigital/api_request.rb', line 7 def token @token end |
Instance Method Details
#comb_parameter(parameters, correct_name, alternative_names) ⇒ Object
52 53 54 55 56 57 58 59 60 |
# File 'lib/sevendigital/api_request.rb', line 52 def comb_parameter(parameters, correct_name, alternative_names) param_value = nil alternative_names = [alternative_names] unless alternative_names.is_a?(Array) alternative_names.each do |alternative_name| param_value ||= parameters[alternative_name] parameters.delete(alternative_name) end parameters[correct_name] ||= param_value if param_value end |
#comb_parameters(params) ⇒ Object
43 44 45 46 47 48 49 50 |
# File 'lib/sevendigital/api_request.rb', line 43 def comb_parameters(params) comb_parameter(params, :pageSize, [:page_size, :per_page]) comb_parameter(params, :shopId, :shop_id) comb_parameter(params, :imageSize, :image_size) remove_empty_parameters(params) (params) params end |
#remove_empty_parameters(parameters) ⇒ Object
62 63 64 |
# File 'lib/sevendigital/api_request.rb', line 62 def remove_empty_parameters(parameters) parameters.delete_if { |key, value| value.nil? } end |
#remove_wrapper_options(parameters) ⇒ Object
66 67 68 69 |
# File 'lib/sevendigital/api_request.rb', line 66 def (parameters) @options.merge!(parameters.select{|key, value| WRAPPER_PARAMETERS.include?(key) }) parameters.delete_if { |key| WRAPPER_PARAMETERS.include?(key) } end |
#require_secure_connection ⇒ Object
39 40 41 |
# File 'lib/sevendigital/api_request.rb', line 39 def require_secure_connection @secure = true end |
#require_signature ⇒ Object
31 32 33 |
# File 'lib/sevendigital/api_request.rb', line 31 def require_signature @signed = true end |
#requires_secure_connection? ⇒ Boolean
35 36 37 |
# File 'lib/sevendigital/api_request.rb', line 35 def requires_secure_connection? @secure == true end |
#requires_signature? ⇒ Boolean
27 28 29 |
# File 'lib/sevendigital/api_request.rb', line 27 def requires_signature? @signed == true end |