Class: Payoneer::Api::Core::ClassMethods::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/payoneer/api/core.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Request

Returns a new instance of Request.



38
39
40
41
42
# File 'lib/payoneer/api/core.rb', line 38

def initialize(config)
  self.config = config
  self.max_attempts = config.proxy.size
  self.num_attempts = 0
end

Instance Attribute Details

#configObject

Returns the value of attribute config.



37
38
39
# File 'lib/payoneer/api/core.rb', line 37

def config
  @config
end

#max_attemptsObject

Returns the value of attribute max_attempts.



37
38
39
# File 'lib/payoneer/api/core.rb', line 37

def max_attempts
  @max_attempts
end

#num_attemptsObject

Returns the value of attribute num_attempts.



37
38
39
# File 'lib/payoneer/api/core.rb', line 37

def num_attempts
  @num_attempts
end

Instance Method Details

#execute(request_params) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/payoneer/api/core.rb', line 43

def execute(request_params)
  self.num_attempts += 1
  config.setup_proxy_if_set
  RestClient.post(config.api_url, request_params)
rescue RestClient::RequestTimeout => e
  # if Net::OpenTimeout === e.original_exception &&
  if self.max_attempts > self.num_attempts
    config.rotate_proxy
    retry
  end
  raise e
end