mirror of
https://github.com/ditkrg/rswag.git
synced 2026-01-22 22:06:43 +00:00
parent
0309ff2166
commit
30e4e77df8
@ -38,8 +38,16 @@ module SwaggerRails
|
||||
metadata[:produces] = mime_types
|
||||
end
|
||||
|
||||
# Accepts parameter objects:
|
||||
# parameter :petId, in: :path, type: :integer, required: true
|
||||
# Or references:
|
||||
# parameter ref: '#/parameters/Pet'
|
||||
def parameter(name, attributes={})
|
||||
metadata[:parameters] << { name: name.to_s }.merge(attributes)
|
||||
metadata[:parameters] << if name.respond_to?(:has_key?)
|
||||
{ '$ref': name.delete(:ref) || name.delete('ref') }
|
||||
else
|
||||
{ name: name.to_s }.merge(attributes)
|
||||
end
|
||||
end
|
||||
|
||||
def response(code, description, &block)
|
||||
|
||||
@ -22,12 +22,23 @@ module SwaggerRails
|
||||
|
||||
def params_data_for(test, parameters)
|
||||
parameters.map do |parameter|
|
||||
parameter = resolve_param_ref(parameter[:$ref]) if parameter.has_key?(:$ref)
|
||||
|
||||
parameter
|
||||
.slice(:name, :in)
|
||||
.merge(value: test.send(parameter[:name].to_s.underscore))
|
||||
end
|
||||
end
|
||||
|
||||
def resolve_param_ref ref
|
||||
raise "Invalid parameter reference: #{ref}" unless %r{#/parameters/(?<name>.+)} =~ ref
|
||||
|
||||
parameter = (@swagger_doc[:parameters][name] || @swagger_doc[:parameters][name.to_sym])
|
||||
raise "Unknown parameter reference: #{ref}" unless parameter
|
||||
|
||||
parameter.merge(name: name)
|
||||
end
|
||||
|
||||
def build_path(path_template, params_data)
|
||||
path_params_data = params_data.select { |p| p[:in] == :path }
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user