Sha256: 63b7a5aae8919fc364409e9941b48cc9fc34cbffddf6e16aac90c778a6a3da13

Contents?: true

Size: 973 Bytes

Versions: 2

Compression:

Stored size: 973 Bytes

Contents

require 'json'

module CodeCode
  module Common
    module Exceptions

      # @class [UnknownFieldException]
      class UnknownFieldException < StandardError
        attr_reader :status, :message, :data, :code

        def initialize(message, status = 400, code = 0, data = {})
          @status = status
          @message = message
          @data = data
          @code = code
        end

        #
        # Convert Exception contents to a Json string. All attributes must
        # be Json serializable.
        def to_json
          JSON.generate(to_hash)
        end

        def to_hash
          {status: @status, message: @message, code: @code, data: @data}
        end

        def to_response
          [@status, to_json]
        end
      end

      # @class [EmptyFieldException]
      class EmptyFieldException < UnknownFieldException; end

      # @class [NullFieldException]
      class NullFieldException < UnknownFieldException; end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
codecode-common-utils-0.1.5 lib/codecode/common/exceptions.rb
codecode-common-utils-0.1.4 lib/codecode/common/exceptions.rb