refactor: remove controller and multiple execution routes
This commit is contained in:
parent
ddbd2225cc
commit
84fe1a0480
4 changed files with 25 additions and 48 deletions
42
src/app.py
42
src/app.py
|
|
@ -1,38 +1,42 @@
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
from constants import EOLAS_DIRECTORY
|
|
||||||
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.parse_file_service import ParseFileService
|
||||||
from services.table_service import TableService
|
from services.table_service import TableService
|
||||||
|
|
||||||
database_service = DatabaseService("eolas")
|
|
||||||
database_connection = database_service.connect()
|
|
||||||
table_service = TableService(database_connection)
|
|
||||||
parse_file_service = ParseFileService(EOLAS_DIRECTORY)
|
|
||||||
|
|
||||||
controller = Controller(database_service, table_service, parse_file_service)
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
prog="eolas-db", description="Eolas database manager."
|
prog="eolas-db", description="Eolas database generator."
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"command",
|
"--source",
|
||||||
choices=["populate-database"],
|
type=str,
|
||||||
help="Command to execute",
|
required=True,
|
||||||
|
help="Source directory for markdown files",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"--target",
|
||||||
|
type=str,
|
||||||
|
required=True,
|
||||||
|
help="Output path for SQLite database file",
|
||||||
|
)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if args.command == "populate-database":
|
SOURCE_DIRECTORY = args.source
|
||||||
controller.execute("populate")
|
TARGET_DIRECTORY = args.target
|
||||||
|
|
||||||
if args.command == "generate-graph":
|
database_service = DatabaseService("eolas", TARGET_DIRECTORY)
|
||||||
controller.execute("graph")
|
database_connection = database_service.connect()
|
||||||
|
table_service = TableService(database_connection)
|
||||||
|
parse_file_service = ParseFileService(SOURCE_DIRECTORY)
|
||||||
|
|
||||||
if args.command == "export-tags":
|
entries = parse_file_service.parse_source_directory()
|
||||||
controller.execute("tags")
|
table_service.populate_tables(entries)
|
||||||
|
database_service.disconnect()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
EOLAS_DIRECTORY = "/home/thomas/repos/eolas/zk"
|
|
||||||
GRAPH_OUTPUT_DIRECTORY = "/home/thomas/repos/eolas-db/out"
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
class Controller:
|
|
||||||
def __init__(
|
|
||||||
self,
|
|
||||||
database_service,
|
|
||||||
table_service,
|
|
||||||
parse_file_service,
|
|
||||||
):
|
|
||||||
self.database_service = database_service
|
|
||||||
self.table_service = table_service
|
|
||||||
self.parse_file_service = parse_file_service
|
|
||||||
|
|
||||||
def execute(self, operation):
|
|
||||||
try:
|
|
||||||
match operation:
|
|
||||||
case "populate":
|
|
||||||
return self.__populate_database()
|
|
||||||
except Exception as e:
|
|
||||||
raise Exception(f"ERROR {e}")
|
|
||||||
finally:
|
|
||||||
self.database_service.disconnect()
|
|
||||||
|
|
||||||
def __populate_database(self):
|
|
||||||
entries = self.parse_file_service.parse_source_directory()
|
|
||||||
self.table_service.populate_tables(entries)
|
|
||||||
self.database_service.disconnect()
|
|
||||||
|
|
@ -4,9 +4,9 @@ from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
class DatabaseService:
|
class DatabaseService:
|
||||||
def __init__(self, db_name):
|
def __init__(self, db_name, db_path):
|
||||||
self.db_name = db_name
|
self.db_name = db_name
|
||||||
self.db_path = "/home/thomas/repos/eolas-db/db"
|
self.db_path = db_path
|
||||||
self.connection: Optional[sqlite3.Connection] = None
|
self.connection: Optional[sqlite3.Connection] = None
|
||||||
|
|
||||||
def connect(self) -> Optional[sqlite3.Connection]:
|
def connect(self) -> Optional[sqlite3.Connection]:
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue