Method: Deliveries::Couriers::Spring::Request.execute

Defined in:
lib/deliveries/couriers/spring/request.rb

.execute(params:) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/deliveries/couriers/spring/request.rb', line 7

def execute(params:)
  response = HTTParty.post(
    endpoint,
    body: params.to_json,
    headers: headers,
    debug_output: Deliveries.debug ? Deliveries.logger : nil
  )
  raise Deliveries::ClientError unless response.success?

  parsed_response = JSON.parse(response.body, symbolize_names: true)
  error_level = parsed_response[:ErrorLevel]

  if error_level.zero?
    parsed_response
  else
    raise Deliveries::APIError.new(
      parsed_response[:Error],
      error_level
    )
  end
end