bugfix db
This commit is contained in:
		
							parent
							
								
									c6d0192fa8
								
							
						
					
					
						commit
						aa61bfabc1
					
				@ -1,10 +1,10 @@
 | 
				
			|||||||
import config
 | 
					import utils.config as config
 | 
				
			||||||
from db.database import get_db_connection
 | 
					from db.database import get_db_connection
 | 
				
			||||||
import logging
 | 
					import logging
 | 
				
			||||||
import datetime
 | 
					from datetime import datetime
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class CaseManager(case_id=None, case_title=None, investigator=None, classification=None, summary=None):
 | 
					class CaseManager():
 | 
				
			||||||
    def __init__(self, db_path=None, case_id=None, case_title=None, investigator=None, classification=None, summary=None):
 | 
					    def __init__(self, db_path=None):
 | 
				
			||||||
        if db_path is None:
 | 
					        if db_path is None:
 | 
				
			||||||
            db_path = config.database_path
 | 
					            db_path = config.database_path
 | 
				
			||||||
        self.db_path = db_path
 | 
					        self.db_path = db_path
 | 
				
			||||||
@ -12,13 +12,6 @@ class CaseManager(case_id=None, case_title=None, investigator=None, classificati
 | 
				
			|||||||
        self.cursor = self.conn.cursor()
 | 
					        self.cursor = self.conn.cursor()
 | 
				
			||||||
        logging.debug(f"Connected to database at {self.db_path}")
 | 
					        logging.debug(f"Connected to database at {self.db_path}")
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        self.case_id = case_id
 | 
					 | 
				
			||||||
        self.case_title = case_title
 | 
					 | 
				
			||||||
        self.investigator = investigator
 | 
					 | 
				
			||||||
        self.classification = classification
 | 
					 | 
				
			||||||
        self.summary = summary
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
    def create_case(self, case_id, case_title, investigator, classification=None, summary=None):
 | 
					    def create_case(self, case_id, case_title, investigator, classification=None, summary=None):
 | 
				
			||||||
        with self.conn:
 | 
					        with self.conn:
 | 
				
			||||||
            self.cursor.execute("""
 | 
					            self.cursor.execute("""
 | 
				
			||||||
@ -27,6 +20,16 @@ class CaseManager(case_id=None, case_title=None, investigator=None, classificati
 | 
				
			|||||||
            """, (case_id, case_title, investigator, classification, summary))
 | 
					            """, (case_id, case_title, investigator, classification, summary))
 | 
				
			||||||
            logging.info(f"Created new case with ID: {case_id}")
 | 
					            logging.info(f"Created new case with ID: {case_id}")
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
 | 
					    def get_case(self, case_id):
 | 
				
			||||||
 | 
					        with self.conn:
 | 
				
			||||||
 | 
					            self.cursor.execute("SELECT * FROM cases WHERE case_id = ?", (case_id,))
 | 
				
			||||||
 | 
					            case = self.cursor.fetchone()
 | 
				
			||||||
 | 
					            if case:
 | 
				
			||||||
 | 
					                return dict(case)
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                logging.warning(f"No case found with ID: {case_id}")
 | 
				
			||||||
 | 
					                return None
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    def list_cases(self, status=None, search_term=None):
 | 
					    def list_cases(self, status=None, search_term=None):
 | 
				
			||||||
        with self.conn:
 | 
					        with self.conn:
 | 
				
			||||||
            query = "SELECT * FROM cases WHERE 1=1"
 | 
					            query = "SELECT * FROM cases WHERE 1=1"
 | 
				
			||||||
@ -80,28 +83,12 @@ class CaseManager(case_id=None, case_title=None, investigator=None, classificati
 | 
				
			|||||||
        return self.update_case(case_id, status='archived')
 | 
					        return self.update_case(case_id, status='archived')
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    def export_case_db(self, case_id, export_path):
 | 
					    def export_case_db(self, case_id, export_path):
 | 
				
			||||||
        with self.conn:
 | 
					        # TODO: Implement export functionality
 | 
				
			||||||
            self.cursor.execute("SELECT * FROM cases WHERE case_id = ?", (case_id,))
 | 
					        # should export a .sqlite file with only the data related to the specified case_id
 | 
				
			||||||
            case = self.cursor.fetchone()
 | 
					        pass
 | 
				
			||||||
            if not case:
 | 
					 | 
				
			||||||
                logging.error(f"No case found with ID: {case_id}")
 | 
					 | 
				
			||||||
                return False
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            with open(export_path, 'w') as f:
 | 
					 | 
				
			||||||
                for key in case.keys():
 | 
					 | 
				
			||||||
                    f.write(f"{key}: {case[key]}\n")
 | 
					 | 
				
			||||||
            logging.info(f"Exported case {case_id} to {export_path}")
 | 
					 | 
				
			||||||
            return True
 | 
					 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    def import_case_db(self, import_path):
 | 
					    def import_case_db(self, import_path):
 | 
				
			||||||
        with open(import_path, 'r') as f:
 | 
					        # TODO: Implement import functionality
 | 
				
			||||||
            try:
 | 
					        # should import a .sqlite file and merge its data into the main database
 | 
				
			||||||
                with open(config.database_path, 'w') as db_file:
 | 
					        pass
 | 
				
			||||||
                    db_file.write(f.read())
 | 
					 | 
				
			||||||
                    get_db_connection(config.database_path)
 | 
					 | 
				
			||||||
                logging.info(f"Imported case database from {import_path}")
 | 
					 | 
				
			||||||
                return True
 | 
					 | 
				
			||||||
            except Exception as e:
 | 
					 | 
				
			||||||
                logging.error(f"Failed to import case database: {e}")
 | 
					 | 
				
			||||||
                return False
 | 
					 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
@ -31,7 +31,7 @@ def create_db_if_not_exists(db_path=None, schema_path=None):
 | 
				
			|||||||
def initialize_database(db_path=None):
 | 
					def initialize_database(db_path=None):
 | 
				
			||||||
    if db_path is None:
 | 
					    if db_path is None:
 | 
				
			||||||
        db_path = config.database_path
 | 
					        db_path = config.database_path
 | 
				
			||||||
    get_db_connection(db_path)
 | 
					    create_db_if_not_exists(db_path)
 | 
				
			||||||
    if config.log_level == 'DEBUG':
 | 
					    if config.log_level == 'DEBUG':
 | 
				
			||||||
        show_db_schema(db_path)
 | 
					        show_db_schema(db_path)
 | 
				
			||||||
    logging.info(f"Database initialized at {db_path}")
 | 
					    logging.info(f"Database initialized at {db_path}")
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user