refactor: use proper dep injection

This commit is contained in:
thomasabishop 2024-11-11 14:43:33 +00:00
parent 4169effe9b
commit b9485f2ec7
2 changed files with 14 additions and 29 deletions

View file

@ -1,11 +1,16 @@
import argparse
import importlib
from constants import EOLAS_DIRECTORY
from controllers.controller import Controller
from services.database_service import DatabaseService
from services.parse_file_service import ParseFileService
from services.sqlite_service import SqliteService
importlib.invalidate_caches()
file_path = "/home/thomas/repos/eolas-db/dev-data/Turing_completeness.md"
database_service = DatabaseService("eolas")
database_connection = database_service.connect()
sqlite_service = SqliteService(database_connection)
parse_file_service = ParseFileService(EOLAS_DIRECTORY)
controller = Controller(database_service, sqlite_service, parse_file_service)
def main():
@ -17,13 +22,6 @@ def main():
)
args = parser.parse_args()
database_service = DatabaseService("eolas")
controller = Controller(database_service)
if args.command == "parse":
parsed_entry = controller.parse_entry(file_path)
print(parsed_entry)
if args.command == "populate":
controller.populate_database()

View file

@ -1,28 +1,15 @@
from services.parse_file_service import ParseFileService
from services.sqlite_service import SqliteService
class Controller:
def __init__(self, database_service):
def __init__(self, database_service, sqlite_service, parse_file_service):
self.database_service = database_service
def parse_entry(self, file_path):
parse_file_service = ParseFileService(file_path)
return parse_file_service.parse()
self.sqlite_service = sqlite_service
self.parse_file_service = parse_file_service
def populate_database(self):
connection = self.database_service.connect()
try:
if connection is None:
raise Exception("Failed to establish database connection")
sqlite_service = SqliteService(connection)
sqlite_service.truncate_tables()
sqlite_service.create_tables()
entries = self.parse_file_service.parse_source_directory()
self.sqlite_service.populate_tables(entries)
except Exception as e:
raise Exception(e)
finally:
if connection is not None:
self.database_service.disconnect()