コード例 #1
0
    def buscar_total_respostas(self, id_postagem):
        try:
            self.log.info('Buscando total de respostas da postagem ' +
                          str(id_postagem))
            executor_total_postagem = CriadorConexao.criar_executor()
            sql = "SELECT count(*) " \
                  "FROM postagem " \
                  "WHERE postagem_respondida_id = %s "

            executor_total_postagem.execute(sql, (id_postagem, ))
            tupla_total_postagem = executor_total_postagem.fetchone()
            CriadorConexao.fechar_executor()
            self.log.info(
                str(tupla_total_postagem[0]) + ' respostas para a postagem ' +
                str(id_postagem))
            return str(tupla_total_postagem[0])
        except Exception as erro:
            self.log.erro(
                'Erro ao buscar o total de respostas da postagem ' +
                str(id_postagem), erro)
            return str(0)
コード例 #2
0
 def __init__(self):  # Construtora:
     self.log = Logger('UsuarioRepositorio')
     self.criador_conexao = CriadorConexao()
コード例 #3
0
class UsuarioRepositorio:
    def __init__(self):  # Construtora:
        self.log = Logger('UsuarioRepositorio')
        self.criador_conexao = CriadorConexao()

    def salvar(self, usuario):
        try:
            self.log.info('Criando o usuario: ' + usuario.nome)
            executor = self.criador_conexao.criar_executor()
            sql = "INSERT INTO usuario " \
                  "(data_insercao, data_alteracao, nome, email, senha, provedor, pontos) " \
                  "VALUES (%s, %s, %s, %s, %s, %s, %s)"
            parametros = (usuario.data_insercao, usuario.data_alteracao,
                          usuario.nome, usuario.email, usuario.senha,
                          usuario.provedor, usuario.pontos)
            executor.execute(sql, parametros)
            self.criador_conexao.commit_mudancas()
            self.criador_conexao.fechar_executor()
            id_criacao = str(executor.lastrowid)
            self.log.info('Criado o usuario ID: ' + id_criacao)
            return id_criacao
        except Exception as erro:
            self.log.erro('Erro ao inserir usuario', erro)
            return str(erro)

    def validar(self, nome, senha):
        try:
            self.log.info('Validando usuario ' + nome)
            executor = self.criador_conexao.criar_executor()
            sql = "SELECT count(*) " \
                  "FROM usuario " \
                  "WHERE nome = %s " \
                  "AND senha = %s "
            parametros = (nome, senha)
            executor.execute(sql, parametros)
            resultado = executor.fetchone()
            self.criador_conexao.fechar_executor()
            self.log.info('Usuario ' + nome + ' validado: ' +
                          str(resultado[0] == 1))
            return resultado[0] == 1
        except Exception as erro:
            self.log.erro('Erro ao validar usuario', erro)
            return str(erro)

    def buscar_por_id(self, usuario_id):
        try:
            self.log.info('Buscando usuario ID: ' + str(usuario_id))
            executor = self.criador_conexao.criar_executor()
            sql = "SELECT * " \
                  "FROM usuario " \
                  "WHERE id = %s "
            executor.execute(sql, (usuario_id, ))
            resultado = executor.fetchone()
            self.criador_conexao.fechar_executor()
            return resultado
        except Exception as erro:
            self.log.erro('Erro ao buscar usuario ID: ' + str(usuario_id),
                          erro)
            return None

    def buscar_por_nome_usuario(self, nome_usuario):
        try:
            self.log.info('Buscando usuario name: ' + str(nome_usuario))
            executor = self.criador_conexao.criar_executor()
            sql = "SELECT * " \
                  "FROM usuario " \
                  "WHERE nome = %s"
            executor.execute(sql, (nome_usuario, ))
            resultado = executor.fetchone()
            self.criador_conexao.fechar_executor()
            return resultado
        except Exception as erro:
            self.log.erro('Erro ao buscar usuario name: ' + str(nome_usuario),
                          erro)
            return None

    def editar(self, usuario):
        try:
            self.log.info('Editando o usuario: ' + usuario.nome)
            executor = self.criador_conexao.criar_executor()
            sql = "UPDATE usuario SET " \
                  "nome = %s," \
                  "email = %s," \
                  "data_alteracao = sysdate()" \
                  "WHERE id = %s"
            parametros = (usuario.nome, usuario.email, usuario.id)
            executor.execute(sql, parametros)
            self.criador_conexao.commit_mudancas()
            self.criador_conexao.fechar_executor()
            self.log.info('Editado o usuario ID: ' + str(usuario.id))
            return str(usuario.id)
        except Exception as erro:
            self.log.erro('Erro ao editar o usuario', erro)
            return str(0)

    def validar_email(self, email):
        try:
            self.log.info('Validando email ' + email)
            executor = self.criador_conexao.criar_executor()
            sql = "SELECT count(*) " \
                  "FROM usuario " \
                  "WHERE email = %s "
            parametros = (email, )
            executor.execute(sql, parametros)
            resultado = executor.fetchone()
            self.criador_conexao.fechar_executor()
            self.log.info('Email ' + email + ' validado: ' +
                          str(resultado[0] == 1))
            return resultado[0] == 1
        except Exception as erro:
            self.log.erro('Erro ao validar email', erro)
            return str(erro)
コード例 #4
0
 def __init__(self):  # Construtora:
     self.log = Logger('EcoPostagemRepositorio')
     self.criador_conexao = CriadorConexao()
コード例 #5
0
class EcoPostagemRepositorio:
    def __init__(self):  # Construtora:
        self.log = Logger('EcoPostagemRepositorio')
        self.criador_conexao = CriadorConexao()

    def buscar(self, usuario_id, postagem_id):
        try:
            self.log.info('Buscando ecos de postagem ' + str(postagem_id) + ' de usuário ' + str(usuario_id))
            executor = self.criador_conexao.criar_executor()
            sql = "SELECT * " \
                  "FROM ecos_postagem " \
                  "WHERE usuario_id = %s " \
                  "AND postagem_id = %s"
            parametros = (usuario_id, postagem_id)
            executor.execute(sql, parametros)
            tupla = executor.fetchone()
            return tupla
        except Exception as erro:
            self.log.erro('Erro ao buscar ecos de usuário ' + str(usuario_id)
                          + ' para postagem  ' + str(postagem_id), erro)
            return None

    def salvar(self, eco):
        try:
            self.log.info('Inserindo notificação')
            executor_notificacao = self.criador_conexao.criar_executor()
            sql = "INSERT INTO ecos_postagem" \
                  "(data_insercao, data_alteracao," \
                  "usuario_id, postagem_id) " \
                  "VALUES (%s, %s, %s, %s)"
            parametros = (
                eco.data_insercao,
                eco.data_alteracao,
                eco.usuario_id,
                eco.postagem_id
            )
            executor_notificacao.execute(sql, parametros)
            self.criador_conexao.commit_mudancas()
            self.criador_conexao.fechar_executor()
            id_eco = str(executor_notificacao.lastrowid)
            self.log.info('Criado o eco ID: ' + id_eco)
        except Exception as erro:
            self.log.erro('Erro ao inserir eco de usuario ' + str(eco.usuario_id) +
                          ' em postagem ' + str(eco.postagem_id), erro)
            return str(0)

    def remover(self, eco):
        try:
            self.log.info('Removendo eco de Usuario ' + str(eco.usuario_id)
                          + " na postagem " + str(eco.postagem_id))
            executor = self.criador_conexao.criar_executor()
            sql = "DELETE FROM ecos_postagem " \
                  "WHERE (usuario_id = %s) " \
                  " AND (postagem_id = %s)  "
            parametros = (
                eco.usuario_id,
                eco.postagem_id
            )
            executor.execute(sql, parametros)
            self.criador_conexao.commit_mudancas()
            self.criador_conexao.fechar_executor()
            self.log.info('Eco de Usuario ' + str(eco.usuario_id)
                          + " na postagem " + str(eco.postagem_id) + " Removido com sucesso")
            return True
        except Exception as erro:
            self.log.erro('Falha de Usuario ' + str(eco.usuario_id) + " ao remover eco da postagem "
                          + str(eco.postagem_id), erro)
            return False

    def buscar_por_postagem_id(self, postagem_id):
        try:
            self.log.info('Buscando ecos de postagem ' + str(postagem_id))
            executor = self.criador_conexao.criar_executor()
            sql = "SELECT * " \
                  "FROM ecos_postagem " \
                  "WHERE postagem_id = %s "
            executor.execute(sql, (postagem_id,))
            tuplas = executor.fetchall()
            return tuplas
        except Exception as erro:
            self.log.erro('Erro ao buscar ecos para postagem  ' + str(postagem_id), erro)
            return None
コード例 #6
0
 def __init__(self):
     self.log = Logger('CurtidasRepositorio')
     self.criador_conexao = CriadorConexao()
コード例 #7
0
class CurtidasRepositorio:
    def __init__(self):
        self.log = Logger('CurtidasRepositorio')
        self.criador_conexao = CriadorConexao()

    def criar(self, curtida):
        try:
            self.log.info('Inserindo novo registro de curtida')
            executor = self.criador_conexao.criar_executor()
            sql = "INSERT INTO curtidas" \
                  "(data_insercao, data_alteracao," \
                  "usuario_id, postagem_id, operacao) " \
                  "VALUES (%s, %s, %s, %s, %s)"
            parametros = (
                datetime.datetime.now(),
                datetime.datetime.now(),
                curtida.usuario_id,
                curtida.postagem_id,
                curtida.operacao
            )
            executor.execute(sql, parametros)
            self.criador_conexao.commit_mudancas()
            self.criador_conexao.fechar_executor()
            id_criacao = str(executor.lastrowid)
            self.log.info('Usuario ' + str(curtida.usuario_id) + " curtiu a postagem " + str(curtida.postagem_id))
            return id_criacao
        except Exception as erro:
            self.log.erro('Falha de Usuario ' + str(curtida.usuario_id)
                          + " ao curtir a postagem " + str(curtida.postagem_id), erro)
            return str(0)

    def remover(self, curtida):
        try:
            self.log.info('Removendo curtida de Usuario ' + str(curtida.usuario_id)
                          + " na postagem " + str(curtida.postagem_id))
            executor = self.criador_conexao.criar_executor()
            sql = "DELETE FROM curtidas " \
                  "WHERE (usuario_id = %s) " \
                  " AND (postagem_id = %s)  "
            parametros = (
                curtida.usuario_id,
                curtida.postagem_id
            )
            executor.execute(sql, parametros)
            self.criador_conexao.commit_mudancas()
            self.criador_conexao.fechar_executor()
            self.log.info('Curtida de Usuario ' + str(curtida.usuario_id)
                          + " na postagem " + str(curtida.postagem_id) + " Removida com sucesso")
            return True
        except Exception as erro:
            self.log.erro('Falha de Usuario ' + str(curtida.usuario_id) + " ao curtir a postagem "
                          + str(curtida.postagem_id), erro)
            return False

    def buscar(self, usuario_id, postagem_id):
        try:
            self.log.info('Buscand0 curtida de usuario ' + str(usuario_id) + " em postagem " + str(postagem_id))
            executor = self.criador_conexao.criar_executor()
            sql = "SELECT * FROM curtidas WHERE" \
                  "(usuario_id = %s) AND (postagem_id = %s)"
            parametros = (
                usuario_id,
                postagem_id
            )
            executor.execute(sql, parametros)
            tupla = executor.fetchone()
            self.criador_conexao.fechar_executor()
            return tupla
        except Exception as erro:
            self.log.erro('Erro ao buscar a postagem ID: ' + str(postagem_id), erro)
            return None
コード例 #8
0
class PostagemRepositorio:
    def __init__(self):  # Construtora:
        self.criador_conexao = CriadorConexao()
        self.log = Logger('PostagemRepositorio')

    def criar(self, postagem):
        try:
            self.log.info('Inserindo nova postagem')
            executor = self.criador_conexao.criar_executor()
            sql = "INSERT INTO postagem" \
                  "(data_insercao, data_alteracao," \
                  "titulo, conteudo, tipo, situacao," \
                  "postagem_respondida_id, usuario_id, curtidas) " \
                  "VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)"
            parametros = (postagem.data_insercao, postagem.data_alteracao,
                          postagem.titulo, postagem.conteudo, postagem.tipo,
                          postagem.situacao, postagem.postagem_respondida_id,
                          postagem.usuario_id, postagem.curtidas)
            executor.execute(sql, parametros)
            self.criador_conexao.commit_mudancas()
            self.criador_conexao.fechar_executor()
            id_criacao = str(executor.lastrowid)
            self.log.info('Criada a postagem ID: ' + id_criacao)
            return id_criacao
        except Exception as erro:
            self.log.erro('Erro ao inserir postagem', erro)
            return str(0)

    def atualizar(self, postagem):
        try:
            self.log.info('Atualizando postagem ID: ' + str(postagem.id))
            executor = self.criador_conexao.criar_executor()
            sql = "UPDATE postagem SET " \
                  "data_alteracao = %s, " \
                  "titulo = %s, conteudo = %s, tipo = %s, situacao = %s," \
                  "curtidas = %s, relevancia = %s, " \
                  "postagem_respondida_id = %s, usuario_id = %s " \
                  "WHERE id = %s"
            parametros = (postagem.data_alteracao, postagem.titulo,
                          postagem.conteudo, postagem.tipo, postagem.situacao,
                          postagem.curtidas, postagem.relevancia,
                          postagem.postagem_respondida_id, postagem.usuario_id,
                          postagem.id)
            executor.execute(sql, parametros)
            self.criador_conexao.commit_mudancas()
            self.criador_conexao.fechar_executor()
            self.log.info('Atualizada a postagem ID: ' + str(postagem.id))
            return str(postagem.id)
        except Exception as erro:
            self.log.erro('Erro ao atualizar postagem ID: ' + str(postagem.id),
                          erro)
            return str(0)

    def buscar_por_id(self, postagem_id):
        try:
            self.log.info('Buscando a postagem ID: ' + str(postagem_id))
            executor = self.criador_conexao.criar_executor()
            sql = "SELECT * FROM postagem WHERE" \
                  "(id = %s) "
            executor.execute(sql, (postagem_id, ))
            tupla = executor.fetchone()
            self.criador_conexao.fechar_executor()
            return tupla
        except Exception as erro:
            self.log.erro('Erro ao buscar a postagem ID: ' + str(postagem_id),
                          erro)
            return None

    def buscar(self):
        try:
            self.log.info('Buscando todas as postagem')
            executor = self.criador_conexao.criar_executor()
            sql = "SELECT * FROM postagem " \
                  "WHERE (tipo = '" + TipoPostagemEnum.PERGUNTA + "') " \
                  "ORDER BY relevancia DESC, data_insercao DESC"
            executor.execute(sql)
            tupla = executor.fetchall()
            self.criador_conexao.fechar_executor()
            return tupla
        except Exception as erro:
            self.log.erro('Erro ao buscar as postagem', erro)
            return None

    def pesquisar_postagens_por_texto(self, texto_pesquisa):
        try:
            self.log.info('Buscando posts com a mensagem \'' + texto_pesquisa +
                          '\'')
            executor = self.criador_conexao.criar_executor()
            sql = "SELECT * FROM postagem WHERE " \
                  "(tipo = '" + TipoPostagemEnum.PERGUNTA + "') AND (" \
                  "(titulo like '%" + texto_pesquisa + "%') OR " \
                  "(conteudo like '%" + texto_pesquisa + "%') OR " \
                  "(tipo like '%" + texto_pesquisa + "%') " \
                  ")" \
                  "ORDER BY relevancia DESC "
            executor.execute(sql)
            tuplas = executor.fetchall()
            self.criador_conexao.fechar_executor()
            self.log.info('Encontrados ' + str(len(tuplas)) + ' resultados')
            return tuplas
        except Exception as erro:
            self.log.erro('Erro ao buscar postagem', erro)
            return str('ERRO: ' + str(erro))

    def buscar_respostas_a_postagem(self, postagem_id):
        try:
            self.log.info('Buscando respostas ao post ID: ' + str(postagem_id))
            executor = self.criador_conexao.criar_executor()
            sql = "SELECT * FROM postagem WHERE (" \
                  "(postagem_respondida_id = %s ) AND " \
                  "(tipo = '" + TipoPostagemEnum.RESPOSTA + "')" \
                  ")" \
                  "ORDER BY relevancia DESC "
            executor.execute(sql, (postagem_id, ))
            tuplas = executor.fetchall()
            self.criador_conexao.fechar_executor()
            self.log.info('Encontrados ' + str(len(tuplas)) + ' resultados')
            return tuplas
        except Exception as erro:
            self.log.erro(
                'Erro ao buscar respostas da postagem ID: ' + str(postagem_id),
                erro)
            return str('ERRO: ' + str(erro))

    def buscar_perguntas_de_usuario(self, usuario_id):
        try:
            self.log.info('Buscando perguntas do usuario ID: ' +
                          str(usuario_id))
            executor = self.criador_conexao.criar_executor()
            sql = "SELECT * FROM postagem WHERE (" \
                  "(usuario_id = %s ) AND " \
                  "(tipo = '" + TipoPostagemEnum.PERGUNTA + "')" \
                  ")" \
                  "ORDER BY relevancia DESC "
            executor.execute(sql, (usuario_id, ))
            tuplas_perguntas = executor.fetchall()
            self.criador_conexao.fechar_executor()
            self.log.info('Encontrados ' + str(len(tuplas_perguntas)) +
                          ' resultados')
            return tuplas_perguntas
        except Exception as erro:
            self.log.erro(
                'Erro ao buscar perguntas do usuario ID: ' + str(usuario_id),
                erro)
            return str('ERRO: ' + str(erro))

    def buscar_respostas_de_usuario(self, usuario_id):
        try:
            self.log.info('Buscando respostas do usuario ID: ' +
                          str(usuario_id))
            executor = self.criador_conexao.criar_executor()
            sql = "SELECT * FROM postagem WHERE (" \
                  "(usuario_id = %s ) AND " \
                  "(tipo = '" + TipoPostagemEnum.RESPOSTA + "')" \
                  ")" \
                  "ORDER BY relevancia DESC "
            executor.execute(sql, (usuario_id, ))
            tuplas_respostas = executor.fetchall()
            self.criador_conexao.fechar_executor()
            self.log.info('Encontrados ' + str(len(tuplas_respostas)) +
                          ' resultados')
            return tuplas_respostas
        except Exception as erro:
            self.log.erro(
                'Erro ao buscar respostas do usuario ID: ' + str(usuario_id),
                erro)
            return str('ERRO: ' + str(erro))

    def buscar_total_respostas(self, id_postagem):
        try:
            self.log.info('Buscando total de respostas da postagem ' +
                          str(id_postagem))
            executor_total_postagem = CriadorConexao.criar_executor()
            sql = "SELECT count(*) " \
                  "FROM postagem " \
                  "WHERE postagem_respondida_id = %s "

            executor_total_postagem.execute(sql, (id_postagem, ))
            tupla_total_postagem = executor_total_postagem.fetchone()
            CriadorConexao.fechar_executor()
            self.log.info(
                str(tupla_total_postagem[0]) + ' respostas para a postagem ' +
                str(id_postagem))
            return str(tupla_total_postagem[0])
        except Exception as erro:
            self.log.erro(
                'Erro ao buscar o total de respostas da postagem ' +
                str(id_postagem), erro)
            return str(0)