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
	
	 thomasabishop
						thomasabishop