from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from scrapy.conf import settings
from utils.Singleton import Singleton


class Connector(metaclass=Singleton):
    __connection = None
    __engine = create_engine(settings['CONNECTION_STRING'])
    __Session = sessionmaker(bind=__engine)

    @staticmethod
    def get_session():
        return Connector.__Session()

    @staticmethod
    def get_connection():
        if not Connector.__connection:
            Connector.__connection = Connector.__engine.connect()
        return Connector.__connection