Class: ApiParams
- Inherits:
-
Object
- Object
- ApiParams
- Defined in:
- lib/generators/propel_facets/templates/lib/api_params.rb
Overview
Helps manipulating client parameters for our API
Constant Summary collapse
- CMDLINE_AGENTS =
%w[httpie curl].freeze
Instance Method Summary collapse
- #command_line_agent ⇒ Object
- #force_permit(key) ⇒ Object
-
#initialize(params, request = nil) ⇒ ApiParams
constructor
A new instance of ApiParams.
- #permit(params) ⇒ Object
Constructor Details
#initialize(params, request = nil) ⇒ ApiParams
Returns a new instance of ApiParams.
7 8 9 10 11 12 13 14 |
# File 'lib/generators/propel_facets/templates/lib/api_params.rb', line 7 def initialize(params, request = nil) @params = if params.is_a? ActionController::Parameters params else ActionController::Parameters.new(params) end @user_agent = request&.user_agent end |
Instance Method Details
#command_line_agent ⇒ Object
40 41 42 43 |
# File 'lib/generators/propel_facets/templates/lib/api_params.rb', line 40 def command_line_agent agent = @user_agent&.downcase CMDLINE_AGENTS.any? ->(prefix) { agent&.start_with? prefix } end |
#force_permit(key) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/generators/propel_facets/templates/lib/api_params.rb', line 24 def force_permit(key) if !@params.include?(:data) && command_line_agent @params[key].permit! else if @params[:data][key].is_a?(Array) # for nested attributes @params[:data][key].each do |field| field.permit! end else @params[:data][key].permit! end end end |
#permit(params) ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/generators/propel_facets/templates/lib/api_params.rb', line 16 def permit(params) if !@params.include?(:data) && command_line_agent @params.permit params else @params.require(:data).permit(params) end end |