Skip to content

Commit 8b97b4d

Browse files
blakenumbata
authored andcommitted
Fix tests
1 parent edb15b5 commit 8b97b4d

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

lib/grape-swagger/openapi_3/endpoint.rb

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -208,18 +208,30 @@ def params_object(route, options, path)
208208
end
209209

210210
def response_body_object(_, _, consumes, parameters)
211-
body_parameters, form_parameters = parameters.partition { |p| p[:in] == 'body' }
212-
result = consumes.map { |c| response_body_parameter_object(body_parameters, c) }
211+
file_params, other_params = parameters.partition { |p| p[:schema][:type] == 'file' }
212+
body_params, form_params = other_params.partition { |p| p[:in] == 'body' || p[:schema][:type] == 'json' }
213+
result = consumes.map { |c| response_body_parameter_object(body_params, c) }
213214

214-
unless form_parameters.empty?
215-
result << response_body_parameter_object(form_parameters, 'application/x-www-form-urlencoded')
215+
unless form_params.empty?
216+
result << response_body_parameter_object(form_params, 'application/x-www-form-urlencoded')
217+
end
218+
219+
unless file_params.empty?
220+
result << response_body_parameter_object(file_params, 'application/octet-stream')
216221
end
217222

218223
{ content: result.to_h }
219224
end
220225

221226
def response_body_parameter_object(parameters, content_type)
222-
properties = parameters.map { |value| [value[:name], value.except(:name, :in, :required, :schema).merge(value[:schema])] }.to_h
227+
properties = parameters.map do |value|
228+
value[:schema][:type] = 'object' if value[:schema][:type] == 'json'
229+
if value[:schema][:type] == 'file'
230+
value[:schema][:format] = 'binary'
231+
value[:schema][:type] = 'string'
232+
end
233+
[value[:name], value.except(:name, :in, :required, :schema).merge(value[:schema])]
234+
end.to_h
223235
required_values = parameters.select { |param| param[:required] }.map { |required| required[:name] }
224236
result = { schema: { type: :object, properties: properties } }
225237
result[:schema][:required] = required_values unless required_values.empty?

0 commit comments

Comments
 (0)