class Contentful::Management::Error
All errors raised by the contentful gem are either instances of Contentful::Management::Error
or inherit from Contentful::Management::Error
Attributes
error[R]
response[R]
Public Class Methods
[](error_status_code)
click to toggle source
Shortcut for creating specialized error classes USAGE rescue Contentful::Management::Error
# File lib/contentful/management/error.rb, line 20 def self.[](error_status_code) errors = { 400 => BadRequest, 401 => Unauthorized, 403 => AccessDenied, 404 => NotFound, 409 => Conflict, 422 => UnprocessableEntity, 429 => RateLimitExceeded, 500 => ServerError, 502 => BadGateway, 503 => ServiceUnavailable }.freeze errors.key?(error_status_code) ? errors[error_status_code] : Error end
new(response)
click to toggle source
Calls superclass method
# File lib/contentful/management/error.rb, line 8 def initialize(response) @response = response @error = { url: response.request.endpoint, message: response.error_message, details: response.raw.body.instance_variable_get(:@contents) } super best_available_message end
Protected Instance Methods
additional_info()
click to toggle source
# File lib/contentful/management/error.rb, line 51 def additional_info [] end
additional_info?()
click to toggle source
# File lib/contentful/management/error.rb, line 47 def additional_info? false end
best_available_message()
click to toggle source
# File lib/contentful/management/error.rb, line 55 def best_available_message error_message = [ "HTTP status code: #{@response.raw.status}" ] begin response_json = @response.load_json message = response_json.fetch('message', default_error_message) details = response_json.fetch('details', nil) request_id = response_json.fetch('requestId', nil) error_message << "Message: #{message}" error_message << "Details: #{handle_details(details)}" if details error_message << "Request ID: #{request_id}" if request_id rescue error_message << "Message: #{default_error_message}" end error_message << additional_info if additional_info? error_message.join("\n") end
default_error_message()
click to toggle source
# File lib/contentful/management/error.rb, line 39 def default_error_message "The following error was received: #{@response.raw.body}" end
handle_details(details)
click to toggle source
# File lib/contentful/management/error.rb, line 43 def handle_details(details) details.to_s end