Sha256: 18e6ff8080ca5ef1072ecbc8d94f034be9ec9c9d7283b37feb4faacb65f4f4d6

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

module MagicWrite
  class ErrorHandler
    HTTP_CODE = {
      400 => MagicWrite::Error::BadRequest,
      401 => MagicWrite::Error::Unauthorized,
      402 => MagicWrite::Error::PaymentRequired,
      403 => MagicWrite::Error::Forbidden,
      404 => MagicWrite::Error::NotFound,
      405 => MagicWrite::Error::MethodNotAllowed,
      408 => MagicWrite::Error::RequestTimeout,
      409 => MagicWrite::Error::Conflict,
      422 => MagicWrite::Error::UnprocessableEntity,
      429 => MagicWrite::Error::TooManyRequests,
      500 => MagicWrite::Error::InternalServerError,
      501 => MagicWrite::Error::NotImplemented,
      502 => MagicWrite::Error::BadGateway,
      503 => MagicWrite::Error::ServiceUnavailable,
      504 => MagicWrite::Error::GatewayTimeout
    }.freeze

    def initialize(response)
      @response = response
      @status = response.status
    end

    def raise_error
      raise error_class, response.reason_phrase
    end

    private

    attr_reader :response, :status

    def error_class
      HTTP_CODE[status] || MagicWrite::Error::UnknownError
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ruby-magicwrite-0.1.5 lib/magicwrite/error_handler.rb
ruby-magicwrite-0.1.4 lib/magicwrite/error_handler.rb