class Foxtrot::Response::Response

Public Class Methods

new(endpoint, resp, api_instance) click to toggle source
# File lib/foxtrot/response.rb, line 6
def initialize(endpoint, resp, api_instance)
  @endpoint = endpoint
  @resp = resp
  @api_instance = api_instance
end
response_for(endpoint, resp, api_instance) click to toggle source
# File lib/foxtrot/response.rb, line 26
def self.response_for(endpoint, resp, api_instance)
  case resp['status']
  when 'pending'
    PendingResponse.new(endpoint, resp, api_instance)
  when 'success'
    SuccessResponse.new(endpoint, resp, api_instance)
  else
    ErrorResponse.new(endpoint, resp, api_instance)
  end
end

Public Instance Methods

poll_and_block!(interval=1, timeout=60) click to toggle source
# File lib/foxtrot/response.rb, line 12
def poll_and_block!(interval=1, timeout=60)
  count = 0
  instance = self
  while !instance.complete?
    instance = instance.poll!
    sleep interval
    count += interval
    if count > timeout
      raise Foxtrot::Errors::APITimeoutError.new(count)
    end
  end
  instance
end