Source code for CveXplore.common.data_source_connection

"""
Data source connection
======================
"""
import json
import os

from CveXplore.api.connection.api_db import ApiDatabaseSource
from CveXplore.database.connection.mongo_db import MongoDBConnection


[docs]class DatasourceConnection(object): """ The DatasourceConnection class handles the connection to the data source and is the base class for the database objects and generic database functions """ # hack for documentation building if json.loads(os.getenv("DOC_BUILD"))["DOC_BUILD"] != "YES": __DATA_SOURCE_CONNECTION = ( ApiDatabaseSource(**json.loads(os.getenv("API_CON_DETAILS"))) if os.getenv("API_CON_DETAILS") else MongoDBConnection(**json.loads(os.getenv("MONGODB_CON_DETAILS"))) )
[docs] def __init__(self, collection): """ Create a DatasourceConnection object :param collection: Define the collection to connect to :type collection: str """ self.__collection = collection
@property def _datasource_connection(self): return DatasourceConnection.__DATA_SOURCE_CONNECTION @property def _datasource_collection_connection(self): return getattr( DatasourceConnection.__DATA_SOURCE_CONNECTION, "store_{}".format(self.__collection), ) @property def _collection(self): return self.__collection