class OpenAPIRest::ApiParameters
Rest Api Parameters
Attributes
allowed_params[R]
validation_errors[R]
Public Class Methods
new(args)
click to toggle source
# File lib/openapi_rest/api_parameters.rb, line 8 def initialize(args) @params = args.fetch(:params, {}) @model_class = args.fetch(:api_model).model @doc_parser = OpenAPIRest::ApiDocParser.new(args.fetch(:openapi_path, {})) end
Public Instance Methods
response_permitted_params()
click to toggle source
# File lib/openapi_rest/api_parameters.rb, line 22 def response_permitted_params @doc_parser.find_path.responses.find(response_code).schema.properties.keys.collect(&:to_sym) end
valid?()
click to toggle source
# File lib/openapi_rest/api_parameters.rb, line 14 def valid? @validation_errors = [] validate @validation_errors.empty? end
Private Instance Methods
api_definitions(key)
click to toggle source
# File lib/openapi_rest/api_parameters.rb, line 72 def api_definitions(key) @doc_parser.document.definitions.find(key) end
api_parameters(key)
click to toggle source
# File lib/openapi_rest/api_parameters.rb, line 68 def api_parameters(key) @doc_parser.document.parameters.find(key) end
property()
click to toggle source
# File lib/openapi_rest/api_parameters.rb, line 56 def property @model_class.name.demodulize end
property_param()
click to toggle source
# File lib/openapi_rest/api_parameters.rb, line 60 def property_param if @model_class.name.nil? @model_class.class.name.demodulize.downcase.to_sym else @model_class.name.demodulize.downcase.to_sym end end
response_code()
click to toggle source
# File lib/openapi_rest/api_parameters.rb, line 28 def response_code return 204 if @doc_parser.method.to_sym == :patch || @doc_parser.method.to_sym == :delete return 201 if @doc_parser.method.to_sym == :post 200 end
root_parameters()
click to toggle source
# File lib/openapi_rest/api_parameters.rb, line 50 def root_parameters params = @doc_parser.find_path.find_parameters puts 'ERROR: parameters not found' if params.nil? params end
save_permitted_params()
click to toggle source
# File lib/openapi_rest/api_parameters.rb, line 46 def save_permitted_params root_parameters.keys.collect(&:to_sym) end
validate()
click to toggle source
# File lib/openapi_rest/api_parameters.rb, line 34 def validate if !@params.include?(property_param) || @params[property_param].empty? @validation_errors << ["Missing Parameter: #{property_param}"] return @validation_errors end @allowed_params = @params.require(property_param).permit(save_permitted_params) @validation_errors = @allowed_params.keys.map do |key| OpenAPIRest::ApiValidator.new(root_parameters[key.to_s]).evaluate(key, @allowed_params) end.compact end