Sha256: 4ea0424ffb0915214b8239e63183b3dffa885aeafc88e6f565d69df7964811ab

Contents?: true

Size: 696 Bytes

Versions: 13

Compression:

Stored size: 696 Bytes

Contents

require 'roar-rails'

module HalApi::Errors

  class ApiError < StandardError
    attr_accessor :status

    def initialize(message = nil, status = 500)
      super(message || "API Error")
      self.status = status
    end
  end

  class NotFound < ApiError
    def initialize(message = nil)
      super(message || "Resource Not Found", 404)
    end
  end

  class UnsupportedMediaType < ApiError
    def initialize(type)
      super("Unsupported Media Type '#{type.inspect}'", 415)
    end
  end

  module Representer
    include Roar::JSON::HAL

    property :status
    property :message
    property :backtrace, if: -> (*) { Rails.configuration.try(:consider_all_requests_local) }
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
hal_api-rails-0.3.7 lib/hal_api/errors.rb
hal_api-rails-0.3.6 lib/hal_api/errors.rb
hal_api-rails-0.3.5 lib/hal_api/errors.rb
hal_api-rails-0.5.0 lib/hal_api/errors.rb
hal_api-rails-0.4.1 lib/hal_api/errors.rb
hal_api-rails-0.4.0 lib/hal_api/errors.rb
hal_api-rails-0.3.4 lib/hal_api/errors.rb
hal_api-rails-0.3.3 lib/hal_api/errors.rb
hal_api-rails-0.3.2 lib/hal_api/errors.rb
hal_api-rails-0.3.1 lib/hal_api/errors.rb
hal_api-rails-0.3.0 lib/hal_api/errors.rb
hal_api-rails-0.2.9 lib/hal_api/errors.rb
hal_api-rails-0.2.8 lib/hal_api/errors.rb