summaryrefslogtreecommitdiff
path: root/lib/api/helpers/custom_validators.rb
diff options
context:
space:
mode:
authorIgor <idrozdov@gitlab.com>2019-03-07 23:55:45 +0000
committerMike Greiling <mike@pixelcog.com>2019-03-07 23:55:45 +0000
commit9745d0de2ff605a03e7fbb95d0f71279bbd4afa5 (patch)
tree0d7f0f89b51199bf676988888539338086f419a3 /lib/api/helpers/custom_validators.rb
parent90f4b6563d42ff7412de277682c0ecb7c25e41bb (diff)
downloadgitlab-ce-9745d0de2ff605a03e7fbb95d0f71279bbd4afa5.tar.gz
Provide EE backports for filtering by approver feature
Adds custom validator for ArrayNoneAny param Extracts some logic in js into separate files
Diffstat (limited to 'lib/api/helpers/custom_validators.rb')
-rw-r--r--lib/api/helpers/custom_validators.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/api/helpers/custom_validators.rb b/lib/api/helpers/custom_validators.rb
index 1058f4e8a5e..c86eae6f2da 100644
--- a/lib/api/helpers/custom_validators.rb
+++ b/lib/api/helpers/custom_validators.rb
@@ -22,9 +22,22 @@ module API
message: "should be an integer, 'None' or 'Any'"
end
end
+
+ class ArrayNoneAny < Grape::Validations::Base
+ def validate_param!(attr_name, params)
+ value = params[attr_name]
+
+ return if value.is_a?(Array) ||
+ [IssuableFinder::FILTER_NONE, IssuableFinder::FILTER_ANY].include?(value.to_s.downcase)
+
+ raise Grape::Exceptions::Validation, params: [@scope.full_name(attr_name)],
+ message: "should be an array, 'None' or 'Any'"
+ end
+ end
end
end
end
Grape::Validations.register_validator(:absence, ::API::Helpers::CustomValidators::Absence)
Grape::Validations.register_validator(:integer_none_any, ::API::Helpers::CustomValidators::IntegerNoneAny)
+Grape::Validations.register_validator(:array_none_any, ::API::Helpers::CustomValidators::ArrayNoneAny)