Class: ActiveRecordApi::Rest::Parameters

Inherits:
Object
  • Object
show all
Includes:
ActiveAttr::Model
Defined in:
lib/active_record_api/rest/parameters.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#action_nameObject

Returns the value of attribute action_name.



5
6
7
# File 'lib/active_record_api/rest/parameters.rb', line 5

def action_name
  @action_name
end

#controller_nameObject

Returns the value of attribute controller_name.



5
6
7
# File 'lib/active_record_api/rest/parameters.rb', line 5

def controller_name
  @controller_name
end

#model_klassObject

Returns the value of attribute model_klass.



5
6
7
# File 'lib/active_record_api/rest/parameters.rb', line 5

def model_klass
  @model_klass
end

#paramsObject

Returns the value of attribute params.



5
6
7
# File 'lib/active_record_api/rest/parameters.rb', line 5

def params
  @params
end

Instance Method Details

#additional_valid_paramsObject



32
33
34
# File 'lib/active_record_api/rest/parameters.rb', line 32

def additional_valid_params
  []
end

#limitObject



20
21
22
# File 'lib/active_record_api/rest/parameters.rb', line 20

def limit
  @limit ||= params[:limit]&.to_i || 50
end

#modifiable_paramsObject



7
8
9
# File 'lib/active_record_api/rest/parameters.rb', line 7

def modifiable_params
  @modifiable ||= params.permit!.to_h.select! { |key, _value| valid_params(modifiable_names).include?(key.to_sym) }
end

#not_allowed_paramsObject



40
41
42
# File 'lib/active_record_api/rest/parameters.rb', line 40

def not_allowed_params
  @not_allowed_params ||= clean_request_names - (valid_params(queryable_names) + Array.wrap(rest_valid_params) + Array.wrap(additional_valid_params))
end

#offsetObject



24
25
26
# File 'lib/active_record_api/rest/parameters.rb', line 24

def offset
  @offset ||= (params[:offset]&.to_i || 0) + (limit * (page - 1))
end

#pageObject



28
29
30
# File 'lib/active_record_api/rest/parameters.rb', line 28

def page
  @page ||= params[:page]&.to_i || 1
end

#queryable_paramsObject



11
12
13
# File 'lib/active_record_api/rest/parameters.rb', line 11

def queryable_params
  @queryable ||= params.permit!.to_h.select! { |key, _value| valid_params(queryable_names).include?(key.to_sym) }
end

#required_parametersObject



44
45
46
# File 'lib/active_record_api/rest/parameters.rb', line 44

def required_parameters
  []
end

#rest_valid_paramsObject



36
37
38
# File 'lib/active_record_api/rest/parameters.rb', line 36

def rest_valid_params
  [:limit, :offset, :page]
end

#valid_params(base_params) ⇒ Object



15
16
17
18
# File 'lib/active_record_api/rest/parameters.rb', line 15

def valid_params(base_params)
  base_valid_params = base_params + ['organization_id'] + [:organization_id] + ['id'] + [:id]
  clean(base_valid_params)
end