Method: MLS#handle_response
- Defined in:
- lib/mls.rb
#handle_response(response, *valid_response_codes) ⇒ Object
Raise an MLS::Exception based on the response_code, unless the response_code is include in the valid_response_codes Array
- Paramaters
-
response- The Net::HTTP::Response object -
valid_response_codes- An Array, Integer, or Range. If it’s Array the Array can include both Integers or Ranges.
- Return Value
-
If an exception is not raised the
responseis returned
Examples:
#!ruby
MLS.handle_response(<Net::HTTP::Response @code=200>) # => <Net::HTTP::Response @code=200>
MLS.handle_response(<Net::HTTP::Response @code=404>) # => raises MLS::Exception::NotFound
MLS.handle_response(<Net::HTTP::Response @code=500>) # => raises MLS::Exception
MLS.handle_response(<Net::HTTP::Response @code=404>, 404) # => <Net::HTTP::Response @code=404>
MLS.handle_response(<Net::HTTP::Response @code=500>, 404, 500) # => <Net::HTTP::Response @code=500>
MLS.handle_response(<Net::HTTP::Response @code=405>, 300, 400..499) # => <Net::HTTP::Response @code=405>
MLS.handle_response(<Net::HTTP::Response @code=405>, [300, 400..499]) # => <Net::HTTP::Response @code=405>
364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 |
# File 'lib/mls.rb', line 364 def handle_response(response, *valid_response_codes) if response['X-42Floors-API-Version-Deprecated'] logger.warn("DEPRECATION WARNING: API v#{API_VERSION} is being phased out") end code = response.code.to_i valid_response_codes.flatten! valid_response_codes << (200..299) if !valid_response_codes.detect{|i| i.is_a?(Range) ? i.include?(code) : i == code} case code when 400 raise MLS::Exception::BadRequest, response.body when 401 raise MLS::Exception::, response.body when 404, 410 raise MLS::Exception::NotFound when 422 raise MLS::Exception::ApiVersionUnsupported, response.body when 503 raise MLS::Exception::ServiceUnavailable, response.body when 300..599 raise MLS::Exception, code end end response end |