def submit(request)
      url = request.to_url
      ActiveSupport::Notifications.instrument("amazon_flex_pay.api", :action => request.action_name, :request => url) do |payload|
        begin
          http = RestClient.get(url)

          payload[:response] = http.body
          payload[:code] = http.code

          response = request.class::Response.from_xml(http.body)
          response.request = request
          response

        rescue RestClient::BadRequest, RestClient::Unauthorized, RestClient::Forbidden => e
          payload[:response] = e.http_body
          payload[:code] = e.http_code

          er = AmazonFlexPay::API::BaseRequest::ErrorResponse.from_xml(e.response.body)
          klass = AmazonFlexPay::API.const_get(er.errors.first.code)
          raise klass.new(er.errors.first.code, er.errors.first.message, er.request_id, request)
        end
      end
    end
def submit(request)
      url = request.to_url
      ActiveSupport::Notifications.instrument("amazon_flex_pay.api", :action => request.action_name, :request => url) do |payload|
        begin
          http = RestClient.get(url)

          payload[:response] = http.body
          payload[:code] = http.code

          response = request.class::Response.from_xml(http.body)
          response.request = request
          response

        rescue RestClient::BadRequest, RestClient::Unauthorized, RestClient::Forbidden => e
          payload[:response] = e.http_body
          payload[:code] = e.http_code

          er = AmazonFlexPay::API::BaseRequest::ErrorResponse.from_xml(e.response.body)
          klass = AmazonFlexPay::API.const_get(er.errors.first.code)
          raise klass.new(er.errors.first.code, er.errors.first.message, er.request_id, request)
        end
      end
    end
def submit ( request ) url = request . to_url ActiveSupport :: Notifications . instrument ( "amazon_flex_pay.api" , :action => request . action_name , :request => url ) do | payload | begin http = RestClient . get ( url ) payload [ :response ] = http . body payload [ :code ] = http . code response = request . class :: Response . from_xml ( http . body ) response . request = request response rescue RestClient :: BadRequest , RestClient :: Unauthorized , RestClient :: Forbidden => e payload [ :response ] = e . http_body payload [ :code ] = e . http_code er = AmazonFlexPay :: API :: BaseRequest :: ErrorResponse . from_xml ( e . response . body ) klass = AmazonFlexPay :: API . const_get ( er . errors . first . code ) raise klass . new ( er . errors . first . code , er . errors . first . message , er . request_id , request ) end end end
This compiles an API request object into a URL, sends it to Amazon, and processes
 the response.
This compiles an API request object into a URL sends it to Amazon and processes the response .