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