validators.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from typing import List
  2. from django.core.exceptions import ValidationError
  3. from django.core.validators import validate_email
  4. def json_email_array(val: List):
  5. '''
  6. Ve que el valor sea una lista de emails serializada en JSON.
  7. Precondicion: es una lista json válida
  8. '''
  9. def check_email(email):
  10. valid = True
  11. try:
  12. validate_email(email)
  13. except ValidationError:
  14. valid = False
  15. return valid
  16. if not all(map(check_email, val)):
  17. raise ValidationError("Debe ser una lista de emails validos")
  18. def json_not_empty_string_array(val):
  19. '''
  20. Ve que el valor sea una lista de strings serializada en JSON
  21. '''
  22. valid = True
  23. # Ser una lista no vacia
  24. if (not (isinstance(val, list) and len(val) > 0)):
  25. valid = False
  26. # Ser una lista de strings
  27. if valid:
  28. for el in val:
  29. if not isinstance(el, str) or len(el) == 0:
  30. valid = False
  31. break
  32. if not valid:
  33. raise ValidationError(
  34. "Debe ser una lista no vacia de strings no vacios")