lib/grape-swagger/endpoint.rb in grape-swagger-1.2.1 vs lib/grape-swagger/endpoint.rb in grape-swagger-1.3.0
- old
+ new
@@ -9,11 +9,11 @@
def content_types_for(target_class)
content_types = (target_class.content_types || {}).values
if content_types.empty?
formats = [target_class.format, target_class.default_format].compact.uniq
- formats = Grape::Formatter.formatters({}).keys if formats.empty?
+ formats = Grape::Formatter.formatters(**{}).keys if formats.empty?
content_types = Grape::ContentTypes::CONTENT_TYPES.select do |content_type, _mime_type|
formats.include? content_type
end.values
end
@@ -76,15 +76,15 @@
# building path and definitions objects
def path_and_definition_objects(namespace_routes, options)
@paths = {}
@definitions = {}
+ add_definitions_from options[:models]
namespace_routes.each_value do |routes|
path_item(routes, options)
end
- add_definitions_from options[:models]
[@paths, @definitions]
end
def add_definitions_from(models)
return if models.nil?
@@ -205,23 +205,24 @@
memo[value[:code]][:headers] = value[:headers] if value[:headers]
next build_file_response(memo[value[:code]]) if file_response?(value[:model])
- response_model = @item
- response_model = expose_params_from_model(value[:model]) if value[:model]
-
if memo.key?(200) && route.request_method == 'DELETE' && value[:model].nil?
memo[204] = memo.delete(200)
value[:code] = 204
+ next
end
- next if value[:code] == 204
- next unless !response_model.start_with?('Swagger_doc') && (@definitions[response_model] || value[:model])
+ # Explicitly request no model with { model: '' }
+ next if value[:model] == ''
- @definitions[response_model][:description] = description_object(route)
+ response_model = value[:model] ? expose_params_from_model(value[:model]) : @item
+ next unless @definitions[response_model]
+ next if response_model.start_with?('Swagger_doc')
+ @definitions[response_model][:description] ||= "#{response_model} model"
memo[value[:code]][:schema] = build_reference(route, value, response_model, options)
memo[value[:code]][:examples] = value[:examples] if value[:examples]
end
end
@@ -362,10 +363,10 @@
options[:token_owner] ? route_hidden.call(send(options[:token_owner].to_sym)) : route_hidden.call
end
def hidden_parameter?(value)
- return false if value.dig(:required)
+ return false if value[:required]
if value.dig(:documentation, :hidden).is_a?(Proc)
value.dig(:documentation, :hidden).call
else
value.dig(:documentation, :hidden)