Module: Scorpio::Ur

Defined in:
lib/scorpio/ur.rb

Constant Summary collapse

Request =
Ur.properties["request"]

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#scorpio_requestScorpio::Request

The Scorpio::Request from which this Ur was run

Returns:



22
23
24
# File 'lib/scorpio/ur.rb', line 22

def scorpio_request
  @scorpio_request
end

Instance Method Details

#raise_on_http_errornil

raises a subclass of Scorpio::HTTPError if the response has an error status. raises nothing if the status is 2xx. raises ClientError or one of its response-specific subclasses if the status is 4xx. raises ServerError or one of its response-specific subclasses if the status is 5xx. raises a generic HTTPError otherwise.

Returns:

  • (nil)

Raises:



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/scorpio/ur.rb', line 32

def raise_on_http_error
  error_class = Scorpio.error_classes_by_status[response.status]
  error_class ||= if (400..499).include?(response.status)
    ClientError
  elsif (500..599).include?(response.status)
    ServerError
  elsif !response.success?
    HTTPError
  end
  if error_class
    message = -"Error calling operation #{scorpio_request.operation.human_id}:\n#{response.body}"
    raise(error_class.new(message).tap do |e|
      e.ur = self
      e.response_object = response.body_object
    end)
  end
  nil
end