class Apipie::Generator::Swagger::ParamDescription::PathParamsComposite
Public Class Methods
new(param_descriptions, context)
click to toggle source
@param [Array<Apipie::ParamDescription>] param_descriptions @param [Apipie::Generator::Swagger::Context] context
# File lib/apipie/generator/swagger/param_description/path_params_composite.rb, line 4 def initialize(param_descriptions, context) @param_descriptions = param_descriptions @context = context @result = [] end
Public Instance Methods
to_swagger()
click to toggle source
@return [Array]
# File lib/apipie/generator/swagger/param_description/path_params_composite.rb, line 11 def to_swagger @param_descriptions.each do |desc| context = @context.dup type = Apipie::Generator::Swagger::TypeExtractor.new(desc.validator).extract if type == 'object' && desc.validator.params_ordered.blank? warn_param_ignored_in_form_data(desc.name) next end has_nested_params = type == 'object' && desc.validator.params_ordered.present? if has_nested_params context.add_to_prefix!(desc.name) out = Apipie::Generator::Swagger::ParamDescription::PathParamsComposite .new(desc.validator.params_ordered, context) .to_swagger @result.concat(out) else param_entry = Apipie::Generator::Swagger::ParamDescription::Builder .new(desc, in_schema: false, controller_method: context.controller_method) .with_description(language: context.language) .with_name(prefix: context.prefix) .with_type(with_null: context.allow_null?) .with_in( http_method: context.http_method, default_in_value: context.default_in_value ).to_swagger @result << param_entry end end @result.sort_by { |p| p[:required] ? 0 : 1 } end
Private Instance Methods
warn_param_ignored_in_form_data(name)
click to toggle source
# File lib/apipie/generator/swagger/param_description/path_params_composite.rb, line 54 def warn_param_ignored_in_form_data(name) Apipie::Generator::Swagger::Warning.for_code( Apipie::Generator::Swagger::Warning::PARAM_IGNORED_IN_FORM_DATA_CODE, @context.controller_method.ruby_name, { parameter: name } ).warn_through_writer end