Exemplo n.º 1
0
    def save(self):
        if self.id is None:
            with Config().get_db_connection().cursor() as cursor:
                cursor.execute('INSERT INTO atores VALUES(NULL)')
                cursor.execute('SELECT LAST_INSERT_ID();')
                self.actor = cursor.fetchone()[0]

                cursor.execute('INSERT INTO publicaveis VALUES(NULL)')
                cursor.execute('SELECT LAST_INSERT_ID()')
                self.publishable = cursor.fetchone()[0]

                cursor.execute(
                    'INSERT INTO usuarios (email, nome, data_nascimento, sexo, senha, codigo_ator, codigo_publicavel)'
                    'VALUES("{}", "{}", "{}", "{}", "{}", {}, {});'.format(self.email, self.name, self.birthdate,
                                                                           self.gender, self.password,
                                                                           self.actor, self.publishable))
                cursor.execute('SELECT LAST_INSERT_ID();')
                self.id = cursor.fetchone()[0]
            Config().get_db_connection().commit()
        else:
            with Config().get_db_connection().cursor() as cursor:
                cursor.execute(
                    'UPDATE usuarios SET email="{}", nome="{}", data_nascimento="{}", sexo="{}", senha="{}" WHERE usuarios.codigo = {}'
                    .format(self.email, self.name, self.birthdate, self.gender, self.password, self.id))
            Config().get_db_connection().commit()
        return self.id
Exemplo n.º 2
0
 def save(self):
     with Config().get_db_connection().cursor() as cursor:
         cursor.execute(
             'INSERT INTO interacoes (codigo_ator, codigo_interativo, data)  '
             'VALUES("{}", "{}", "{}")'.format(self.actor,
                                               self.interactable,
                                               self.date))
     Config().get_db_connection().commit()
Exemplo n.º 3
0
    def make_friendship(friend1, friend2):
        if friend1.id == friend2.id:
            return False

        with Config().get_db_connection().cursor() as cursor:
            cursor.execute('INSERT INTO sao_amigos (codigo_usuario_1, codigo_usuario_2) '
                           'VALUES ("{}", "{}")'.format(friend1.id, friend2.id))

        Config().get_db_connection().commit()
        return True
Exemplo n.º 4
0
    def make_internal_friendship(self, new_friend):
        if new_friend.id == self.id:
            return False

        with Config().get_db_connection().cursor() as cursor:
            cursor.execute('INSERT INTO sao_amigos (codigo_usuario_1, codigo_usuario_2) '
                           'VALUES ("{}", "{}")'.format(self.id, new_friend.id))

        Config().get_db_connection().commit()
        return True
Exemplo n.º 5
0
 def find_users(name):
     with Config().get_db_connection().cursor() as cursor:
         cursor.execute('SELECT codigo, email, nome, data_nascimento, sexo, senha, codigo_ator, codigo_publicavel '
                        'FROM usuarios '
                        'WHERE UPPER(nome) LIKE UPPER(\'%{}%\')'
                        .format(name))
         for u in cursor.fetchall():
             yield UserModel(id=u[0], email=u[1], name=u[2], birthdate=u[3], gender=u[4], password=u[5], actor=u[6],
                             publishable=u[7], friends=list(UserModel.find_friends(u[0])))
Exemplo n.º 6
0
 def find_by_email_and_password(email, password):
     with Config().get_db_connection().cursor() as cursor:
         cursor.execute('SELECT codigo, email, nome, data_nascimento, sexo, senha, codigo_ator, codigo_publicavel '
                        'FROM usuarios '
                        'WHERE usuarios.email = \'{}\' AND usuarios.senha = \'{}\''.format(email, password))
         u = cursor.fetchone()
         if u is not None:
             return UserModel(id=u[0], email=u[1], name=u[2], birthdate=u[3], gender=u[4], password=u[5], actor=u[6],
                              publishable=u[7], friends=list(UserModel.find_friends(u[0])))
         return None
Exemplo n.º 7
0
 def find_friends(uid):
     with Config().get_db_connection().cursor() as cursor:
         cursor.execute(
             'SELECT u.codigo, u.email, u.nome, u.data_nascimento, u.sexo, u.senha, u.codigo_ator, u.codigo_publicavel '
             'FROM usuarios as u WHERE u.codigo IN'
             '(SELECT s.codigo_usuario_2 from sao_amigos as s'
             ' WHERE s.codigo_usuario_1 = {})'.format(uid))
         for u in cursor.fetchall():
             yield UserModel(id=u[0], email=u[1], name=u[2], birthdate=u[3], gender=u[4], password=u[5], actor=u[6],
                             publishable=u[7])
Exemplo n.º 8
0
 def find_by_actor(uid):
     with Config().get_db_connection().cursor() as cursor:
         cursor.execute('SELECT codigo, data_publicacao, conteudo, codigo_ator, codigo_publicavel, '
                        'codigo_interativo, codigo_pertence '
                        'FROM publicacoes '
                        'WHERE publicacoes.codigo_ator = {} '
                        'ORDER BY data_publicacao DESC '
                        .format(uid))
         for p in cursor.fetchall():
             yield PostModel(id=p[0], created_at=p[1], content=p[2], actor=p[3], publishable=p[4], interactable=p[5],
                             belong=p[6], likes=PostModel.get_likes(p[5]))
Exemplo n.º 9
0
    def save(self):
        if self.id is None:
            with Config().get_db_connection().cursor() as cursor:
                cursor.execute('INSERT INTO interativos VALUES(NULL)')
                cursor.execute('SELECT LAST_INSERT_ID()')
                self.interactable = cursor.fetchone()[0]

                cursor.execute('INSERT INTO publicaveis VALUES(NULL)')
                cursor.execute('SELECT LAST_INSERT_ID()')
                self.publishable = cursor.fetchone()[0]

                self.belong = 'NULL' if self.belong is None else self.belong

                cursor.execute('INSERT INTO publicacoes (data_publicacao, conteudo, codigo_ator, codigo_publicavel, '
                               'codigo_interativo, codigo_pertence) '
                               'VALUES("{}", "{}", {}, {}, {}, {})'
                               .format(self.created_at, self.content, self.actor, self.publishable, self.interactable,
                                       self.belong))
                cursor.execute('SELECT LAST_INSERT_ID()')
                self.id = cursor.fetchone()[0]
            Config().get_db_connection().commit()
        return self.id
Exemplo n.º 10
0
 def find_by_actor_and_interactable(actor, interactable):
     with Config().get_db_connection().cursor() as cursor:
         cursor.execute(
             'SELECT codigo_ator, codigo_interativo, data '
             'FROM interacoes '
             'WHERE interacoes.codigo_ator = {} and interacoes.codigo_interativo = {}'
             .format(actor, interactable))
         u = cursor.fetchone()
         if u is not None:
             return InteractionModel(actor=u[0],
                                     interactable=u[1],
                                     date=u[2])
         return None
Exemplo n.º 11
0
 def get_likes(pid):
     with Config().get_db_connection().cursor() as cursor:
         cursor.execute('SELECT COUNT(codigo_interativo) FROM interacoes WHERE interacoes.codigo_interativo = {}'
                        .format(pid))
         return cursor.fetchone()[0]
Exemplo n.º 12
0
 def check_if_actor_liked(self, actor):
     with Config().get_db_connection().cursor() as cursor:
         cursor.execute('SELECT COUNT(codigo_interativo) FROM interacoes WHERE interacoes.codigo_interativo = {} and interacoes.codigo_ator = {}}'
                        .format(self.interactable, actor))
         return cursor.fetchone()[0] > 0