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 argparse
|
||||||
import importlib
|
|
||||||
|
|
||||||
|
from constants import EOLAS_DIRECTORY
|
||||||
from controllers.controller import Controller
|
from controllers.controller import Controller
|
||||||
from services.database_service import DatabaseService
|
from services.database_service import DatabaseService
|
||||||
|
from services.parse_file_service import ParseFileService
|
||||||
|
from services.sqlite_service import SqliteService
|
||||||
|
|
||||||
importlib.invalidate_caches()
|
database_service = DatabaseService("eolas")
|
||||||
file_path = "/home/thomas/repos/eolas-db/dev-data/Turing_completeness.md"
|
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():
|
def main():
|
||||||
|
@ -17,13 +22,6 @@ def main():
|
||||||
)
|
)
|
||||||
args = parser.parse_args()
|
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":
|
if args.command == "populate":
|
||||||
controller.populate_database()
|
controller.populate_database()
|
||||||
|
|
||||||
|
|
|
@ -1,28 +1,15 @@
|
||||||
from services.parse_file_service import ParseFileService
|
|
||||||
from services.sqlite_service import SqliteService
|
|
||||||
|
|
||||||
|
|
||||||
class Controller:
|
class Controller:
|
||||||
def __init__(self, database_service):
|
def __init__(self, database_service, sqlite_service, parse_file_service):
|
||||||
self.database_service = database_service
|
self.database_service = database_service
|
||||||
|
self.sqlite_service = sqlite_service
|
||||||
def parse_entry(self, file_path):
|
self.parse_file_service = parse_file_service
|
||||||
parse_file_service = ParseFileService(file_path)
|
|
||||||
return parse_file_service.parse()
|
|
||||||
|
|
||||||
def populate_database(self):
|
def populate_database(self):
|
||||||
connection = self.database_service.connect()
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if connection is None:
|
entries = self.parse_file_service.parse_source_directory()
|
||||||
raise Exception("Failed to establish database connection")
|
self.sqlite_service.populate_tables(entries)
|
||||||
sqlite_service = SqliteService(connection)
|
|
||||||
sqlite_service.truncate_tables()
|
|
||||||
sqlite_service.create_tables()
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise Exception(e)
|
raise Exception(e)
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
if connection is not None:
|
self.database_service.disconnect()
|
||||||
self.database_service.disconnect()
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue