Sha256: 8c5b317aa99f0a18156b29f351142b4a75c18753dafce445beecd1c508a524b8

Contents?: true

Size: 1.23 KB

Versions: 16

Compression:

Stored size: 1.23 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 429
        RateLimitExceeded
      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

  # 429
  class RateLimitExceeded < 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

16 entries across 16 versions & 1 rubygems

Version Path
contentful-1.2.2 lib/contentful/error.rb
contentful-1.2.1 lib/contentful/error.rb
contentful-1.2.0 lib/contentful/error.rb
contentful-1.1.1 lib/contentful/error.rb
contentful-1.1.0 lib/contentful/error.rb
contentful-1.0.2 lib/contentful/error.rb
contentful-1.0.1 lib/contentful/error.rb
contentful-1.0.0 lib/contentful/error.rb
contentful-0.12.0 lib/contentful/error.rb
contentful-0.11.0 lib/contentful/error.rb
contentful-0.10.0 lib/contentful/error.rb
contentful-0.9.0 lib/contentful/error.rb
contentful-0.8.0 lib/contentful/error.rb
contentful-0.7.0 lib/contentful/error.rb
contentful-0.6.0 lib/contentful/error.rb
contentful-0.5.0 lib/contentful/error.rb