import pymssql
import src.settings as settings

class DBConnector:
    
    DB_CON = 0
    
    def __init__(self, host, user, password, database):

        # host
        self._host = host
        # user
        self._user = user
        # password
        self._password = password
        self._connection = None
        self.database = database
        self.logger = settings.logger

    def __del__(self):
        
        if self._connection is not None:
            self.disconnect()

    def disconnect(self):

        if self._connection is not None:
            DBConnector.DB_CON -= 1     
            self._connection.close()
            self._connection = None
            
        self.logger.warning("Closed DB DBConnection: {_c}".format(_c=DBConnector.DB_CON))

    def connect(self):

        if self._connection is None:
            DBConnector.DB_CON += 1 
            self._connection = pymssql.connect(
                server=self._host, user=self._user, password=self._password)
        else:
            self.logger.error("Reusing connection")
            
        self.logger.warning("Open DB DBConnection: {_c}".format(_c=DBConnector.DB_CON))