fix params validation
This commit is contained in:
@@ -14,6 +14,8 @@ module Params
|
|||||||
raise e unless validator.dry_run?
|
raise e unless validator.dry_run?
|
||||||
rescue StandardError => e
|
rescue StandardError => e
|
||||||
Rollbar.error(e) if defined?(Rollbar)
|
Rollbar.error(e) if defined?(Rollbar)
|
||||||
|
|
||||||
|
raise e unless Rails.env.production?
|
||||||
end
|
end
|
||||||
|
|
||||||
attr_reader :params, :dry_run
|
attr_reader :params, :dry_run
|
||||||
@@ -48,11 +50,11 @@ module Params
|
|||||||
|
|
||||||
def type(params, key, type, message: nil)
|
def type(params, key, type, message: nil)
|
||||||
return if params.blank?
|
return if params.blank?
|
||||||
return unless params.key?(key)
|
return if params[key].blank?
|
||||||
|
|
||||||
return if params[key].is_a?(type)
|
return if params[key].is_a?(type) || (type == Hash && params[key].is_a?(ActionController::Parameters))
|
||||||
|
|
||||||
type = 'Object' if type == 'Hash'
|
type = 'Object' if type == Hash
|
||||||
|
|
||||||
raise_error(message || "#{key} must be a #{type}")
|
raise_error(message || "#{key} must be a #{type}")
|
||||||
end
|
end
|
||||||
@@ -84,6 +86,7 @@ module Params
|
|||||||
def boolean(params, key, message: nil)
|
def boolean(params, key, message: nil)
|
||||||
return if params.blank?
|
return if params.blank?
|
||||||
return unless params.key?(key)
|
return unless params.key?(key)
|
||||||
|
return if params[key].nil?
|
||||||
|
|
||||||
value = ActiveModel::Type::Boolean.new.cast(params[key])
|
value = ActiveModel::Type::Boolean.new.cast(params[key])
|
||||||
|
|
||||||
|
|||||||
@@ -33,10 +33,6 @@ module Params
|
|||||||
required(params, :template_id)
|
required(params, :template_id)
|
||||||
required(params, %i[submission submissions])
|
required(params, %i[submission submissions])
|
||||||
|
|
||||||
in_path(params, :submission) do |submission_params|
|
|
||||||
required(submission_params, :submitters) if params[:submission]
|
|
||||||
end
|
|
||||||
|
|
||||||
boolean(params, :send_email)
|
boolean(params, :send_email)
|
||||||
boolean(params, :send_sms)
|
boolean(params, :send_sms)
|
||||||
type(params, :order, String)
|
type(params, :order, String)
|
||||||
@@ -53,8 +49,14 @@ module Params
|
|||||||
|
|
||||||
value_in(params, :order, %w[preserved random], allow_nil: true)
|
value_in(params, :order, %w[preserved random], allow_nil: true)
|
||||||
|
|
||||||
|
return true if params[:submission].is_a?(Array)
|
||||||
|
|
||||||
|
in_path(params, :submission) do |submission_params|
|
||||||
|
required(submission_params, :submitters) if params[:submission]
|
||||||
|
end
|
||||||
|
|
||||||
in_path_each(params, %i[submission submitters]) do |submitter_params|
|
in_path_each(params, %i[submission submitters]) do |submitter_params|
|
||||||
required(submitter_params, :email)
|
required(submitter_params, %i[email phone name])
|
||||||
|
|
||||||
type(submitter_params, :name, String)
|
type(submitter_params, :name, String)
|
||||||
type(submitter_params, :email, String)
|
type(submitter_params, :email, String)
|
||||||
|
|||||||
Reference in New Issue
Block a user