Exception: LookerSDK::Error
- Inherits:
-
StandardError
- Object
- StandardError
- LookerSDK::Error
- Defined in:
- lib/looker-sdk/error.rb
Direct Known Subclasses
Class Method Summary collapse
-
.error_for_401(headers) ⇒ Object
Returns most appropriate error for 401 HTTP status code.
-
.error_for_403(body) ⇒ Object
Returns most appropriate error for 403 HTTP status code.
-
.from_response(response) ⇒ LookerSDK::Error
Returns the appropriate LookerSDK::Error sublcass based on status and response message.
Instance Method Summary collapse
-
#documentation_url ⇒ String
Documentation URL returned by the API for some errors.
-
#errors ⇒ Array<Hash>
Array of validation errors.
-
#initialize(response = nil) ⇒ Error
constructor
A new instance of Error.
-
#message ⇒ String
Message string returned by the API for some errors.
Constructor Details
#initialize(response = nil) ⇒ Error
Returns a new instance of Error.
35 36 37 38 |
# File 'lib/looker-sdk/error.rb', line 35 def initialize(response=nil) @response = response super() end |
Class Method Details
.error_for_401(headers) ⇒ Object
Returns most appropriate error for 401 HTTP status code
56 57 58 59 60 61 62 |
# File 'lib/looker-sdk/error.rb', line 56 def self.error_for_401(headers) if LookerSDK::OneTimePasswordRequired.required_header(headers) LookerSDK::OneTimePasswordRequired else LookerSDK::Unauthorized end end |
.error_for_403(body) ⇒ Object
Returns most appropriate error for 403 HTTP status code
66 67 68 69 70 71 72 73 74 |
# File 'lib/looker-sdk/error.rb', line 66 def self.error_for_403(body) if body =~ /rate limit exceeded/i LookerSDK::TooManyRequests elsif body =~ /login attempts exceeded/i LookerSDK::TooManyLoginAttempts else LookerSDK::Forbidden end end |
.from_response(response) ⇒ LookerSDK::Error
Returns the appropriate LookerSDK::Error sublcass based on status and response message
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/looker-sdk/error.rb', line 9 def self.from_response(response) status = response[:status].to_i body = response[:body].to_s headers = response[:response_headers] if klass = case status when 400 then LookerSDK::BadRequest when 401 then error_for_401(headers) when 403 then error_for_403(body) when 404 then LookerSDK::NotFound when 405 then LookerSDK::MethodNotAllowed when 406 then LookerSDK::NotAcceptable when 409 then LookerSDK::Conflict when 415 then LookerSDK::UnsupportedMediaType when 422 then LookerSDK::UnprocessableEntity when 400..499 then LookerSDK::ClientError when 500 then LookerSDK::InternalServerError when 501 then LookerSDK::NotImplemented when 502 then LookerSDK::BadGateway when 503 then LookerSDK::ServiceUnavailable when 500..599 then LookerSDK::ServerError end klass.new(response) end end |
Instance Method Details
#documentation_url ⇒ String
Documentation URL returned by the API for some errors
43 44 45 |
# File 'lib/looker-sdk/error.rb', line 43 def documentation_url data[:documentation_url] if data.is_a? Hash end |
#errors ⇒ Array<Hash>
Array of validation errors
78 79 80 81 82 83 84 |
# File 'lib/looker-sdk/error.rb', line 78 def errors if data && data.is_a?(Hash) data[:errors] || [] else [] end end |
#message ⇒ String
Message string returned by the API for some errors
50 51 52 |
# File 'lib/looker-sdk/error.rb', line 50 def end |