lib/grape-swagger/endpoint.rb in grape-swagger-1.3.1 vs lib/grape-swagger/endpoint.rb in grape-swagger-1.4.0

- old
+ new

@@ -268,15 +268,22 @@ private def build_memo_schema(memo, route, value, response_model, options) if memo[value[:code]][:schema] && value[:as] memo[value[:code]][:schema][:properties].merge!(build_reference(route, value, response_model, options)) + + if value[:required] + memo[value[:code]][:schema][:required] ||= [] + memo[value[:code]][:schema][:required] << value[:as].to_s + end + elsif value[:as] memo[value[:code]][:schema] = { type: :object, properties: build_reference(route, value, response_model, options) } + memo[value[:code]][:schema][:required] = [value[:as].to_s] if value[:required] else memo[value[:code]][:schema] = build_reference(route, value, response_model, options) end end @@ -320,11 +327,11 @@ { type: 'object', properties: { route.settings.dig(:swagger, :root) => reference } } end end def file_response?(value) - value.to_s.casecmp('file').zero? ? true : false + value.to_s.casecmp('file').zero? end def build_file_response(memo) memo['schema'] = { type: 'file' } end @@ -411,9 +418,10 @@ default_code[:message] = entity[:message] || route.description || default_code[:message].sub('{item}', @item) default_code[:examples] = entity[:examples] if entity[:examples] default_code[:headers] = entity[:headers] if entity[:headers] default_code[:as] = entity[:as] if entity[:as] default_code[:is_array] = entity[:is_array] if entity[:is_array] + default_code[:required] = entity[:required] if entity[:required] else default_code = GrapeSwagger::DocMethods::StatusCodes.get[route.request_method.downcase.to_sym] default_code[:model] = entity if entity default_code[:message] = route.description || default_code[:message].sub('{item}', @item) end