Sha256: 81b912ef9f448f80fc2bae4d5c42b646911e34e8bd9417e1850b1fc549cab201

Contents?: true

Size: 1.14 KB

Versions: 4

Compression:

Stored size: 1.14 KB

Contents

module Contentful
  # All errors raised by the contentful gem are either instances of Contentful::Error
  # or inherit from Contentful::Error
  class Error < StandardError
    attr_reader :response

    def initialize(response)
      @response = response
      super @response.error_message
    end

    # Shortcut for creating specialized error classes
    # USAGE rescue Contentful::Error[404]
    def self.[](error_status_code)
      case error_status_code
      when 404
        NotFound
      when 400
        BadRequest
      when 403
        AccessDenied
      when 401
        Unauthorized
      when 500
        ServerError
      when 503
        ServiceUnavailable
      else
        Error
      end
    end
  end

  # 404
  class NotFound < Error; end

  # 400
  class BadRequest < Error; end

  # 403
  class AccessDenied < Error; end

  # 401
  class Unauthorized < Error; end

  # 500
  class ServerError < Error; end

  # 503
  class ServiceUnavailable < Error; end

  # Raised when response is no valid json
  class UnparsableJson < Error; end

  # Raised when response is not parsable as a Contentful::Resource
  class UnparsableResource < Error; end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
contentful-0.4.0 lib/contentful/error.rb
contentful-0.3.5 lib/contentful/error.rb
contentful-0.3.4 lib/contentful/error.rb
contentful-0.3.3 lib/contentful/error.rb