module Deliveries::Couriers::Spring::Request

Public Instance Methods

endpoint() click to toggle source
# File lib/deliveries/couriers/spring/request.rb, line 33
def endpoint
  if Spring.live?
    Spring::ENDPOINT_LIVE
  else
    Spring::ENDPOINT_TEST
  end
end
execute(params:) click to toggle source
# 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
headers() click to toggle source
# File lib/deliveries/couriers/spring/request.rb, line 29
def headers
  { 'Content-Type' => "text/json; charset='UTF-8'" }
end