refactor: use proper dep injection
This commit is contained in:
parent
4169effe9b
commit
b9485f2ec7
2 changed files with 14 additions and 29 deletions
18
src/cli.py
18
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()
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Add table
Reference in a new issue