Código fonte para zoop_wrapper.exceptions

[documentos]class FieldError(Exception): """ Exceção para ser usada quando a validação de algum campo falha. """
[documentos] def __init__(self, name, reason): """ Args: name: nome do campo reason: motivo do erro """ self.name = name self.reason = reason super().__init__(self.to_dict())
[documentos] def to_dict(self): """ transforma exceção para um dict Returns: dict """ return {self.name: self.reason}
[documentos]class ValidationError(Exception): """ Exceção para ser usada quando a validação de um ZoopObject ocorre """
[documentos] def __init__(self, entity, errors): """ Args: entity: entidade na qual o erro ocorreu errors: lista de qualquer coisa (preferencialmente :class:`.FieldError`) """ if type(entity) == type: self.class_name = entity.__name__ else: self.class_name = type(entity).__name__ if isinstance(errors, list): self.errors = errors else: self.errors = [errors] super().__init__( f"Validação falhou para {self.class_name}! " f"Erros: {self.parse_errors()}" )
[documentos] def parse_errors(self): """ Traduz os erros do tipo :class:`.FieldError` para dict na listagem de erros Returns: lista de objetos serializáveis """ errors_list = [] for error in self.errors: if isinstance(error, FieldError): errors_list.append(error.to_dict()) else: errors_list.append(error) return errors_list