summaryrefslogtreecommitdiff
path: root/src/mailman/rest/validator.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/rest/validator.py')
-rw-r--r--src/mailman/rest/validator.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/mailman/rest/validator.py b/src/mailman/rest/validator.py
index d8297e519..cf32ca838 100644
--- a/src/mailman/rest/validator.py
+++ b/src/mailman/rest/validator.py
@@ -23,9 +23,13 @@ __metaclass__ = type
__all__ = [
'Validator',
'enum_validator',
+ 'subscriber_validator',
]
+from uuid import UUID
+
+
COMMASPACE = ', '
@@ -42,6 +46,17 @@ class enum_validator:
return self._enum_class[enum_value]
+
+
+def subscriber_validator(subscriber):
+ """Convert an email-or-int to an email-or-UUID."""
+ try:
+ return UUID(int=int(subscriber))
+ except ValueError:
+ return subscriber
+
+
+
class Validator:
"""A validator of parameter input."""