Exception: HumanError::Errors::UnpermittedParametersError

Inherits:
RuntimeError
  • Object
show all
Includes:
HumanError::Error, CrudError
Defined in:
lib/human_error/errors/request_errors/unpermitted_parameters_error.rb

Instance Attribute Summary collapse

Attributes included from CrudError

#action, #resource_id, #resource_name

Attributes included from HumanError::Error

#code, #developer_documentation_url, #external_documentation_url, #id, #message

Class Method Summary collapse

Instance Method Summary collapse

Methods included from HumanError::Error

#as_json, included, #to_json, #to_s

Constructor Details

#initialize(**attrs) ⇒ UnpermittedParametersError

Returns a new instance of UnpermittedParametersError.



22
23
24
25
26
# File 'lib/human_error/errors/request_errors/unpermitted_parameters_error.rb', line 22

def initialize(**attrs)
  self.parameters = Array(attrs.delete(:parameters))

  super(**attrs)
end

Instance Attribute Details

#parametersObject

Returns the value of attribute parameters.



7
8
9
# File 'lib/human_error/errors/request_errors/unpermitted_parameters_error.rb', line 7

def parameters
  @parameters
end

Class Method Details

.convert(original_error, overrides = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/human_error/errors/request_errors/unpermitted_parameters_error.rb', line 9

def self.convert(original_error, overrides = {})
  initialization_parameters = {}

  case original_error.class.name
  when 'ActionController::UnpermittedParameters'
    initialization_parameters = {
      parameters: Array(original_error.params),
    }
  end

  new(initialization_parameters.merge(overrides))
end

Instance Method Details

#detailObject



36
37
38
39
# File 'lib/human_error/errors/request_errors/unpermitted_parameters_error.rb', line 36

def detail
  "Attempting to #{action} a #{resource_name} with the following parameters is " \
  "not allowed: #{parameters.join(', ')}"
end

#http_statusObject



28
29
30
# File 'lib/human_error/errors/request_errors/unpermitted_parameters_error.rb', line 28

def http_status
  400
end

#sourceObject



41
42
43
44
45
# File 'lib/human_error/errors/request_errors/unpermitted_parameters_error.rb', line 41

def source
  {
    'unpermitted_parameters' => parameters,
  }
end

#titleObject



32
33
34
# File 'lib/human_error/errors/request_errors/unpermitted_parameters_error.rb', line 32

def title
  'Unpermitted Parameters'
end