class Swarker::PathParameters
Constants
- IGNORED_PATH_PARAMS
- IN_BODY
- IN_FORM_DATA
- IN_PATH
- IN_QUERY
- REF
Attributes
parameters[R]
Public Class Methods
new(path_schema)
click to toggle source
# File lib/swarker/path_parameters.rb, line 12 def initialize(path_schema) @path_schema = HashWithIndifferentAccess.new(path_schema) @parameters = parse_parameters end
Private Instance Methods
accounted_path_params()
click to toggle source
# File lib/swarker/path_parameters.rb, line 70 def accounted_path_params @path_schema[:extensions][:path_params].select { |k| !IGNORED_PATH_PARAMS.include?(k.to_sym) } end
accounted_request_params()
click to toggle source
# File lib/swarker/path_parameters.rb, line 49 def accounted_request_params @path_schema[:requestParameters][:properties] end
determine_in(parameter, options)
click to toggle source
# File lib/swarker/path_parameters.rb, line 74 def determine_in(parameter, options) if verb == 'get' || query_params.include?(parameter) IN_QUERY elsif options[REF] IN_BODY else IN_FORM_DATA end end
in_path()
click to toggle source
# File lib/swarker/path_parameters.rb, line 57 def in_path accounted_path_params.collect do |parameter, default| { name: parameter, description: '', # nothing to propose for description type: 'string', # assume all path parameters are strings default: default, in: IN_PATH, required: true } end end
in_request()
click to toggle source
# File lib/swarker/path_parameters.rb, line 24 def in_request parameters_from_properties(accounted_request_params).flatten end
parameters_from_properties(properties, name_prefix = nil)
click to toggle source
# File lib/swarker/path_parameters.rb, line 28 def parameters_from_properties(properties, name_prefix = nil) properties.collect do |parameter, options| if options[:properties] parameters_from_properties(options[:properties], parameter) else param_desc = { name: name_prefix ? "#{name_prefix}[#{parameter}]" : parameter, description: options[:description] || '', # blank unless given type: options[:type], default: options[:example], in: determine_in(parameter, options) }.compact param_desc[:required] = true if require_request_params.include?(parameter) param_desc[:schema] = { REF => options[REF].sub(%r{.json#/}, '').sub(%r{(\.\./)+}, '#/') } if options[REF] param_desc end end end
parse_parameters()
click to toggle source
# File lib/swarker/path_parameters.rb, line 20 def parse_parameters in_request + in_path end
query_params()
click to toggle source
# File lib/swarker/path_parameters.rb, line 88 def query_params @path_schema[:extensions][:query_params] || [] end
require_request_params()
click to toggle source
# File lib/swarker/path_parameters.rb, line 53 def require_request_params @path_schema[:requestParameters][:required] || [] end
verb()
click to toggle source
# File lib/swarker/path_parameters.rb, line 84 def verb @path_schema[:extensions][:method].downcase end