Source code for src.dieta_especial.solicitacao_dieta_especial.api.validators

import datetime

from rest_framework import serializers


[docs] def deve_ter_atributos(data, atributos): for atributo in atributos: if atributo not in data: raise serializers.ValidationError(f"deve ter atributo {atributo}")
[docs] def atributos_lista_nao_vazios(data, atributos): for atributo in atributos: if len(data[atributo]) < 1: raise serializers.ValidationError(f"atributo {atributo} não pode ser vazio")
[docs] def atributos_string_nao_vazios(data, atributos): for atributo in atributos: if data[atributo] == "": raise serializers.ValidationError(f"atributo {atributo} não pode ser vazio")
[docs] def masca_data_valida(data): try: datetime.datetime.strptime(data, "%d/%m/%Y") return True except ValueError: raise serializers.ValidationError( "Formato de data inválido, deve ser dd/mm/aaaa" )
[docs] def somente_digitos(codigo_eol): if not "".join([p for p in codigo_eol if p in "0123456789"]) == codigo_eol: raise serializers.ValidationError("Deve ter somente dígitos")
[docs] class AlunoSerializerValidator(serializers.Serializer): codigo_eol = serializers.CharField(max_length=7, validators=[somente_digitos]) nome = serializers.CharField(max_length=100) data_nascimento = serializers.CharField( max_length=10, validators=[masca_data_valida] )