diff --git a/src/cli.py b/src/cli.py index 648818d..010739e 100644 --- a/src/cli.py +++ b/src/cli.py @@ -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() diff --git a/src/controllers/controller.py b/src/controllers/controller.py index 110cce3..91b3007 100644 --- a/src/controllers/controller.py +++ b/src/controllers/controller.py @@ -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() + self.database_service.disconnect()