def getComentarioUser(userid):
        bd = BD()
        condicion = {'user_id': userid}
        resultado = {}

        consulta = bd.select(resultado, Comentario.tabla, condicion)
        return consulta
    def getComentarioEMT(codeEMT):
        bd = BD()
        condicion = {'codeEMT': codeEMT}
        resultado = {}

        consulta = bd.select(resultado, Comentario.tabla, condicion)
        return consulta
 def getComentarioByUsername(username):
     #a primera tabla y b segunda
     bd = BD()
     ID = bd.selectEscalar({'id': 1}, Comentario.tablaUsuarios,
                           {'username': username})
     consulta = bd.select({}, Comentario.tabla, {'user_id': ID})
     return consulta
    def getComentarios():
        bd = BD()
        condicion = {}
        resultado = {}

        consulta = bd.select(resultado, Comentario.tabla, condicion)

        return consulta
 def deleteComentario(self):
     bd = BD()
     condicion = {'_id': self.id}
     bd.delete(Comentario.tabla, condicion)
     self.id = None
     self.usuario_id = None
     self.codeEMT = None
     self.texto = None
     self.imagen = None
 def listaUsuarios():
     bd = BD()
     ap = bd.select({}, Usuario.tabla, {})
     #creo una lista vacia (que se usara para devolver el resultado)
     lista = []
     #cada tupla en la lista obtenida en la consulta se usa para crear una instancia de apadrinamiento y se agregan a la lista vacia
     for user in ap:
         lista.append(user)
     return lista
 def getComentarioID(id):
     bd = BD()
     condicion = {'_id': id}
     resultado = {}
     try:
         [(id, usuario_id, codeEMT, texto, imagen)
          ] = bd.select(resultado, Comentario.tabla, condicion)
         return id, usuario_id, codeEMT, texto, imagen
     except Error:
         raise ValueError('ID inexistente')
 def buscarPorEmail(email):
     try:
         bd = BD()
         condicion = {'email': email}
         resultado = {}
         [(id, email, username, image)] = bd.select(resultado,
                                                    Usuario.tabla,
                                                    condicion)
         return id, email, username, image
     except ValueError:
         raise ValueError('User not found')
 def deleteUser(self):
     bd = BD()
     condicion = {
         "_id": self.id,
         "email": self.email,
         "username": self.username
     }
     bd.delete(Usuario.tabla, condicion)
     self.id = None
     self.email = None
     self.username = None
    def getComentario(id: int, usuario_id: int, codeEMT: str):
        bd = BD()
        condicion = {'_id': id, 'user_id': usuario_id, 'codeEMT': codeEMT}
        resultado = {}

        consulta = bd.selectEscalar(resultado, Comentario.tabla, condicion)
        if consulta != None:
            newComment = Comentario(consulta[0], consulta[1], consulta[2],
                                    consulta[3], consulta[4])
            return newComment
        else:
            print('Usuario o Comentario errĂ³neos')
            return None
    def getUsuario(id: str, email: str, username: str):
        bd = BD()
        condicion = {"_id": id, "email": email, "username": username}
        resultado = {}

        consulta = bd.selectEscalar(resultado, Usuario.tabla, condicion)
        if consulta != None:
            newUser = Usuario(consulta[0], consulta[1], consulta[2],
                              consulta[3])
            return newUser
        else:
            print('Usuario errĂ³neo')
            return None
    def newComentario(usuario_id: int,
                      codeEMT: str,
                      text: str = None,
                      imagen: str = None):
        bd = BD()
        condicion = {'_id': usuario_id}
        resultado = {}
        consulta = bd.selectEscalar(resultado, Comentario.tablaUsuarios,
                                    condicion)
        if consulta != None:
            #Usuario existente

            valores = {
                'user_id': usuario_id,
                'codeEMT': codeEMT,
                'text': text,
                'image': imagen
            }
            bd.insert(valores, Comentario.tabla)

        else:
            print('Usuario inexistente')
            return None
    def newUsuario(id: str, email: str, username: str, image: str):
        if email == None or username == None:
            print('Error: los datos no pueden ser nulos')
            return None
        bd = BD()

        existe = bd.select({}, Usuario.tabla, {"email": email})

        if not existe:
            valores = [id, email, username, image]
            bd.insert(
                {
                    "_id": id,
                    "email": email,
                    "username": username,
                    "image": image
                }, Usuario.tabla)

            newUser = Usuario(id, email, username, image)
            return newUser
        else:
            print('Usuario con email  ', email, ' ya registrado')
            return None