Sha256: 69c701636ebad5ad06ca508acfc83c52859ba112686c9d504674ff2be82dee87

Contents?: true

Size: 860 Bytes

Versions: 8

Compression:

Stored size: 860 Bytes

Contents

class Apipie::Generator::Swagger::ParamDescription::In
  IN_KEYWORD_DEFAULT_VALUES = {
    form_data: 'formData',
    query: 'query'
  }

  def initialize(param_description, in_schema:, default_in_value:, http_method:)
    @param_description = param_description
    @in_schema = in_schema
    @default_in_value = default_in_value
    @http_method = http_method
  end

  # @return [Hash]
  def to_hash
    # The "name" and "in" keys can only be set on root parameters (non-nested)
    return {} if @in_schema

    { in: in_value }
  end

  private

  def in_value
    return @default_in_value if @default_in_value.present?

    if body_allowed_for_current_method?
      IN_KEYWORD_DEFAULT_VALUES[:form_data]
    else
      IN_KEYWORD_DEFAULT_VALUES[:query]
    end
  end

  def body_allowed_for_current_method?
    %w[get head].exclude?(@http_method)
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
apipie-rails-1.4.0 lib/apipie/generator/swagger/param_description/in.rb
apipie-rails-1.3.0 lib/apipie/generator/swagger/param_description/in.rb
apipie-rails-1.2.3 lib/apipie/generator/swagger/param_description/in.rb
apipie-rails-1.2.2 lib/apipie/generator/swagger/param_description/in.rb
apipie-rails-1.2.1 lib/apipie/generator/swagger/param_description/in.rb
apipie-rails-1.2.0 lib/apipie/generator/swagger/param_description/in.rb
apipie-rails-1.1.0 lib/apipie/generator/swagger/param_description/in.rb
apipie-rails-1.0.0 lib/apipie/generator/swagger/param_description/in.rb