class AdsCommonForBingAds::ParametersValidator
Public Instance Methods
validate_args(action_name, args)
click to toggle source
Validates input parameters to:
-
add parameter names;
-
resolve xsi:type where required;
-
convert some native types to XML.
# File lib/ads_common_for_bing_ads/parameters_validator.rb, line 8 def validate_args(action_name, args) in_params = @registry.get_method_signature(action_name)[:input] # Hash like {:name=>"get_accounts_info_request", :fields=>[]} # TODO: compare number of parameters. args_hash = args#{in_params[:name] => deep_copy(args)} #validate_arguments(args_hash, in_params) return args_hash end
Private Instance Methods
validate_arguments(args_hash, fields_list, type_ns = nil)
click to toggle source
Validates given arguments based on provided fields list.
# File lib/ads_common_for_bing_ads/parameters_validator.rb, line 19 def validate_arguments(args_hash, fields_list, type_ns = nil) check_extra_fields(args_hash, array_from_named_list(fields_list)) add_order_key(args_hash, fields_list) fields_list.each do |field| key = field[:name] item = args_hash[key] check_required_argument_present(item, field) if item item_type = get_full_type_signature(field[:type]) item_ns = field[:ns] || type_ns key = handle_namespace_override(args_hash, key, item_ns) if item_ns validate_arg(item, args_hash, key, item_type) end end return args_hash end