Class: DearInventory::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/dear_inventory/lib/request.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(parameters, num_previous_records: 0) ⇒ Request



9
10
11
12
13
# File 'lib/dear_inventory/lib/request.rb', line 9

def initialize(parameters, num_previous_records: 0)
  @parameters = parameters
  @num_previous_records = num_previous_records
  @retries = 0
end

Class Method Details

.call(parameters, num_previous_records: 0) ⇒ Object



5
6
7
# File 'lib/dear_inventory/lib/request.rb', line 5

def self.call(parameters, num_previous_records: 0)
  new(parameters, num_previous_records: num_previous_records).call
end

Instance Method Details

#callObject



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/dear_inventory/lib/request.rb', line 15

def call
  options = request_params(@parameters.action, @parameters.params)
  response = HTTP.headers(headers).
    public_send(@parameters.action, @parameters.uri, options)

  DearInventory::Response.new(
    response: response,
    request: @parameters,
    num_previous_records: @num_previous_records
  )
rescue DearInventory::APILimitError, HTTP::ConnectionError => e
  retry_request(e)
end