Código fonte de legislei.services.dispositivos

from mongoengine.errors import ValidationError

from legislei.exceptions import (DeviceDoesNotExistError,
                                 InvalidParametersError, UserDoesNotExist)
from legislei.models.user import User, UserDevice


[documentos]class Dispositivo(): def _obter_usuario(self, user_id): try: user = User.objects(pk=user_id).first() return user if user.pk else None except (ValidationError, AttributeError): raise UserDoesNotExist()
[documentos] def obter_dispositivos_de_usuario(self, user_id): user = self._obter_usuario(user_id) return user.devices if user.devices else []
[documentos] def adicionar_dispostivo(self, user_id, uuid, token, name, active=True, os=""): user = self._obter_usuario(user_id) try: device = UserDevice( id=uuid, token=token, active=active, name=name, os=os ) if [x for x in user.devices if x.id == uuid] != []: raise InvalidParametersError("Dispositivo já existe") if user.devices: user.devices.append(device) else: user.devices = [device] user.save() except ValidationError as e: raise InvalidParametersError(e.message)
[documentos] def atualizar_dispositivo(self, user_id, device_id, **kwargs): user = self._obter_usuario(user_id) try: device = next(x for x in user.devices if x.id == device_id) except StopIteration: raise DeviceDoesNotExistError() for key, item in kwargs.items(): setattr(device, key, item) return user.save()
[documentos] def apagar_dispositivo(self, user_id, device_id): self._obter_usuario(user_id).update( pull__devices__id=device_id )