Class: Sevendigital::ApiRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/sevendigital/api_request.rb

Overview

Abstraction of a HTTP API request, ApiOperator uses this ApiRequest to build a real HTTP requests

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(http_method, api_method, parameters, options = {}) ⇒ ApiRequest

Returns a new instance of ApiRequest.



11
12
13
14
15
16
17
18
# File 'lib/sevendigital/api_request.rb', line 11

def initialize(http_method, api_method, parameters, options={})
  @api_method = api_method
  @parameters = parameters
  @signature_scheme = :header
  @http_method = http_method
  comb_parameters(parameters)
  @form_parameters = Hash.new
end

Instance Attribute Details

#api_methodObject (readonly)

:nodoc:



6
7
8
# File 'lib/sevendigital/api_request.rb', line 6

def api_method
  @api_method
end

#api_serviceObject

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_parametersObject



20
21
22
# File 'lib/sevendigital/api_request.rb', line 20

def form_parameters
  comb_parameters(@form_parameters)
end

#http_methodObject

Returns the value of attribute http_method.



7
8
9
# File 'lib/sevendigital/api_request.rb', line 7

def http_method
  @http_method
end

#parametersObject (readonly)

:nodoc:



6
7
8
# File 'lib/sevendigital/api_request.rb', line 6

def parameters
  @parameters
end

#signature_schemeObject

Returns the value of attribute signature_scheme.



8
9
10
# File 'lib/sevendigital/api_request.rb', line 8

def signature_scheme
  @signature_scheme
end

#signedObject (readonly)

:nodoc:



6
7
8
# File 'lib/sevendigital/api_request.rb', line 6

def signed
  @signed
end

#tokenObject

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



48
49
50
51
52
53
54
55
56
# File 'lib/sevendigital/api_request.rb', line 48

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(parameters) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/sevendigital/api_request.rb', line 40

def comb_parameters(parameters)
  comb_parameter(parameters, :pageSize, [:page_size, :per_page])
  comb_parameter(parameters, :shopId, :shop_id)
  comb_parameter(parameters, :imageSize, :image_size)
  remove_empty_parameters(parameters)
  parameters
end

#remove_empty_parameters(parameters) ⇒ Object



58
59
60
# File 'lib/sevendigital/api_request.rb', line 58

def remove_empty_parameters(parameters)
  parameters.delete_if { |key, value| value.nil? }
end

#require_secure_connectionObject



36
37
38
# File 'lib/sevendigital/api_request.rb', line 36

def require_secure_connection
  @secure = true
end

#require_signatureObject



28
29
30
# File 'lib/sevendigital/api_request.rb', line 28

def require_signature
  @signed = true
end

#requires_secure_connection?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/sevendigital/api_request.rb', line 32

def requires_secure_connection?
  @secure == true
end

#requires_signature?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/sevendigital/api_request.rb', line 24

def requires_signature?
  @signed == true
end