Source code for dgi.banco

from abc import ABC, abstractmethod
from pymongo import MongoClient

from dgi.excecoes import DefinicaoInvalida


[docs]class GeradorDeConexoes(ABC): """Classe abstrata para generalizações de conexão com o banco de dados """
[docs] @staticmethod @abstractmethod def recupera_conexao(db_props) -> MongoClient: pass
[docs]class GeradorDeConexoesMongo(GeradorDeConexoes): """Classe para gerar conexões com o MongoDB """
[docs] @staticmethod def recupera_conexao(db_probs) -> MongoClient: """Método para recuperar a conexão com o banco de dados Args: db_props (dict): Dicionário contendo as informações para conexão com o banco de dados, contendo as seguintes chaves host: ``str``: Endereço de IP do banco de dados porta: ``int``: Porta do banco de dados usuario: ``str``: Usuário para utilizar o banco (Opcional) senha: ``str``: Senha para utilizar o banco (Opcional) Returns: MongoClient: Conexão com o banco de dados """ if "usuario" in db_probs: if "senha" in db_probs: return MongoClient('mongodb://%s:%s@%s:%i' % (db_probs["host"], db_probs["porta"], db_probs["usuario"], db_probs["senha"])) else: raise DefinicaoInvalida("Ao inserir o usuário do banco de dados é necessário definir a senha") return MongoClient(db_probs["host"], db_probs["porta"])