Sha256: 464adc4c45c3309502b6ab55cfb5708f9e198080821258a00e7e875dfe6a6403

Contents?: true

Size: 1.06 KB

Versions: 7

Compression:

Stored size: 1.06 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
      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

  # 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

7 entries across 7 versions & 1 rubygems

Version Path
contentful-0.3.2 lib/contentful/error.rb
contentful-0.3.1 lib/contentful/error.rb
contentful-0.3.0 lib/contentful/error.rb
contentful-0.2.0 lib/contentful/error.rb
contentful-0.1.3 lib/contentful/error.rb
contentful-0.1.2 lib/contentful/error.rb
contentful-0.1.1 lib/contentful/error.rb