Sha256: ab32560f3e3c347a04ecf37050bdc6a3af5d29c01569dc7ef237e64e4e400f3c

Contents?: true

Size: 1.98 KB

Versions: 24

Compression:

Stored size: 1.98 KB

Contents

module Apipie

  class Error < StandardError
  end

  class ParamError < Error
  end

  class UnknownCode < Error
  end

  class ReturnsMultipleDefinitionError < Error
    def to_s
      "a 'returns' statement cannot indicate both array_of and type"
    end
  end

  # abstract
  class DefinedParamError < ParamError
    attr_accessor :param

    def initialize(param)
      @param = param
    end
  end

  class ParamMissing < DefinedParamError
    def to_s
      unless @param.options[:missing_message].nil?
        if @param.options[:missing_message].kind_of?(Proc)
          @param.options[:missing_message].call
        else
          @param.options[:missing_message].to_s
        end
      else
        "Missing parameter #{@param.name}"
      end
    end
  end

  class UnknownParam < DefinedParamError
    def to_s
      "Unknown parameter #{@param}"
    end
  end

  class ParamInvalid < DefinedParamError
    attr_accessor :value, :error

    def initialize(param, value, error)
      super param
      @value = value
      @error = error
    end

    def to_s
      "Invalid parameter '#{@param}' value #{@value.inspect}: #{@error}"
    end
  end

  class ResponseDoesNotMatchSwaggerSchema < Error
    def initialize(controller_name, method_name, response_code, error_messages, schema, returned_object)
      @controller_name = controller_name
      @method_name = method_name
      @response_code = response_code
      @error_messages = error_messages
      @schema = schema
      @returned_object = returned_object
    end

    def to_s
      "Response does not match swagger schema (#{@controller_name}##{@method_name} #{@response_code}): #{@error_messages}\nSchema: #{JSON(@schema)}\nReturned object: #{@returned_object}"
    end
  end

  class NoDocumentedMethod < Error
    def initialize(controller_name, method_name)
      @method_name = method_name
      @controller_name = controller_name
    end

    def to_s
      "There is no documented method #{@controller_name}##{@method_name}"
    end
  end
end

Version data entries

24 entries across 24 versions & 2 rubygems

Version Path
apipie-rails-0.9.3 lib/apipie/errors.rb
apipie-rails-0.9.2 lib/apipie/errors.rb
apipie-rails-0.9.1 lib/apipie/errors.rb
apipie-rails-0.9.0 lib/apipie/errors.rb
apipie-rails-0.8.2 lib/apipie/errors.rb
apipie-rails-0.8.1 lib/apipie/errors.rb
apipie-rails-0.8.0 lib/apipie/errors.rb
apipie-rails-0.7.2 lib/apipie/errors.rb
apipie-rails-0.7.1 lib/apipie/errors.rb
apipie-rails-0.7.0 lib/apipie/errors.rb
apipie-rails-0.6.0 lib/apipie/errors.rb
apipie-rails-0.5.20 lib/apipie/errors.rb
apipie-rails-0.5.19 lib/apipie/errors.rb
apipie-rails-0.5.18 lib/apipie/errors.rb
apipie-rails-0.5.17 lib/apipie/errors.rb
apipie-rails-0.5.16 lib/apipie/errors.rb
apipierails3-0.0.1 lib/apipie/errors.rb
apipie-rails-0.5.15 lib/apipie/errors.rb
apipie-rails-0.5.14 lib/apipie/errors.rb
apipie-rails-0.5.13 lib/apipie/errors.rb