Module: RailsParamValidation::AnnotationExtension::ClassMethods

Defined in:
lib/rails-param-validation/rails/extensions/annotation_extension.rb

Instance Method Summary collapse

Instance Method Details

#accept_all_paramsObject



89
90
91
# File 'lib/rails-param-validation/rails/extensions/annotation_extension.rb', line 89

def accept_all_params
  param_definition.disable_param_validation!
end

#action(description = nil, flags = RailsParamValidation.config.default_action_flags) ⇒ Object



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/rails-param-validation/rails/extensions/annotation_extension.rb', line 105

def action(description = nil, flags = RailsParamValidation.config.default_action_flags)
  if description.is_a?(Hash)
    method = description.keys.first.to_sym
    path = description.values.first
    description = ""
  else
    method = nil
    path = nil
  end

  @param_definition = ActionDefinition.new(Types::Namespace.caller_file)
  @param_definition.description = description
  flags.each { |name, value| @param_definition.add_flag name, value }

  if method
    @param_definition.add_path method, path
  end

  yield
end

#base_path(path, include_module_name: true) ⇒ Object



41
42
43
44
45
46
47
48
# File 'lib/rails-param-validation/rails/extensions/annotation_extension.rb', line 41

def base_path(path, include_module_name: true)
  if include_module_name
    path = "#{module_parent_name.underscore}/#{path}".gsub("//", "/")
  end

  @base_paths ||= {}
  @base_paths[self.name] = path
end

#body_param(name, schema, description = nil) ⇒ Object



65
66
67
# File 'lib/rails-param-validation/rails/extensions/annotation_extension.rb', line 65

def body_param(name, schema, description = nil)
  param name, schema, :body, description
end

#body_type(mime_type) ⇒ Object



73
74
75
# File 'lib/rails-param-validation/rails/extensions/annotation_extension.rb', line 73

def body_type(mime_type)
  param_definition.request_body_type! mime_type
end

#desc(description) ⇒ Object



77
78
79
80
81
82
83
# File 'lib/rails-param-validation/rails/extensions/annotation_extension.rb', line 77

def desc(description)
  if @param_definition
    param_definition.description = description
  else
    AnnotationManager.instance.annotate_class! self, :description, description
  end
end

#flag(name, value, _comment = nil) ⇒ Object



97
98
99
# File 'lib/rails-param-validation/rails/extensions/annotation_extension.rb', line 97

def flag(name, value, _comment = nil)
  @param_definition.add_flag name, value
end

#no_paramsObject



85
86
87
# File 'lib/rails-param-validation/rails/extensions/annotation_extension.rb', line 85

def no_params
  param_definition
end

#param(name, schema, type = :query, description = nil) ⇒ Object

Parameters:

  • name (Symbol)

    Name of the parameter as it is accessible by params

  • schema

    Definition of the schema (according to the available validators)

  • description (String) (defaults to: nil)

    Description of the param, just for documentation



57
58
59
# File 'lib/rails-param-validation/rails/extensions/annotation_extension.rb', line 57

def param(name, schema, type = :query, description = nil)
  param_definition.add_param name, type, schema, description
end

#param_definitionObject



50
51
52
# File 'lib/rails-param-validation/rails/extensions/annotation_extension.rb', line 50

def param_definition
  @param_definition || raise(StandardError.new "Annotation must be part of an operation-block")
end

#path_param(name, schema, description = nil) ⇒ Object



69
70
71
# File 'lib/rails-param-validation/rails/extensions/annotation_extension.rb', line 69

def path_param(name, schema, description = nil)
  param name, schema, :path, description
end

#query_param(name, schema, description = nil) ⇒ Object



61
62
63
# File 'lib/rails-param-validation/rails/extensions/annotation_extension.rb', line 61

def query_param(name, schema, description = nil)
  param name, schema, :query, description
end

#response(status, schema, description) ⇒ Object



93
94
95
# File 'lib/rails-param-validation/rails/extensions/annotation_extension.rb', line 93

def response(status, schema, description)
  param_definition.add_response status, schema, description
end

#security_hint(security) ⇒ Object



101
102
103
# File 'lib/rails-param-validation/rails/extensions/annotation_extension.rb', line 101

def security_hint(security)
  @param_definition.add_security(security)
end