update database functionality

This commit is contained in:
WorldTeacher
2024-02-07 11:39:01 +01:00
parent 11fdae1553
commit e602325678

View File

@@ -39,11 +39,9 @@ class Database:
return None return None
def connect(self): def connect(self):
logger.log_info("Connecting to database")
return sql.connect(self.db_path) return sql.connect(self.db_path)
def close_connection(self, conn: sql.Connection): def close_connection(self, conn: sql.Connection):
logger.log_info("Closing database connection")
conn.close() conn.close()
def create_tables(self): def create_tables(self):
@@ -115,7 +113,13 @@ class Database:
def getBookIdBasedOnSignature(self, app_id:str, prof_id:str,signature:str)->int: def getBookIdBasedOnSignature(self, app_id:str, prof_id:str,signature:str)->int:
result = self.query_db("SELECT bookdata, id FROM media WHERE app_id=? AND prof_id=?", (app_id,prof_id)) result = self.query_db("SELECT bookdata, id FROM media WHERE app_id=? AND prof_id=?", (app_id,prof_id))
books = [(load_pickle(i[0]),i[1]) for i in result] books = [(load_pickle(i[0]),i[1]) for i in result]
book = [i for i in books if i[0].signature == signature][1] # ic(books)
book = [i for i in books if i[0].signature == signature][0]
return book
def getBookBasedOnSignature(self, app_id:str, prof_id:str,signature:str)->BookData:
result = self.query_db("SELECT bookdata FROM media WHERE app_id=? AND prof_id=?", (app_id,prof_id))
books = [load_pickle(i[0]) for i in result]
book = [i for i in books if i.signature == signature][0]
return book return book
def getLastBookId(self)->int: def getLastBookId(self)->int:
return self.query_db("SELECT id FROM media ORDER BY id DESC", one=True)[0] return self.query_db("SELECT id FROM media ORDER BY id DESC", one=True)[0]
@@ -210,6 +214,7 @@ class Database:
delete=False, dir=tempdir_path, mode="wb", suffix=f".{filetype}" delete=False, dir=tempdir_path, mode="wb", suffix=f".{filetype}"
) )
file.write(blob) file.write(blob)
print("file created")
return file.name return file.name
def getFiles(self, app_id:int, prof_id:int)->list[tuple]: def getFiles(self, app_id:int, prof_id:int)->list[tuple]:
return self.query_db("SELECT filename, filetyp FROM files WHERE app_id=? AND prof_id=?", (app_id,prof_id)) return self.query_db("SELECT filename, filetyp FROM files WHERE app_id=? AND prof_id=?", (app_id,prof_id))
@@ -315,7 +320,9 @@ class Database:
- number(List[int]): a list of all currently used apparat numbers - number(List[int]): a list of all currently used apparat numbers
""" """
numbers = self.query_db("SELECT appnr FROM semesterapparat WHERE deletion_status=0") numbers = self.query_db("SELECT appnr FROM semesterapparat WHERE deletion_status=0")
return [i[0] for i in numbers] numbers = [i[0] for i in numbers]
logger.log_info(f"Currently used apparat numbers: {numbers}")
return numbers
def setNewSemesterDate(self, appnr, newDate, dauerapp=False): def setNewSemesterDate(self, appnr, newDate, dauerapp=False):
date = datetime.datetime.strptime(newDate, "%d.%m.%Y").strftime("%Y-%m-%d") date = datetime.datetime.strptime(newDate, "%d.%m.%Y").strftime("%Y-%m-%d")
if dauerapp: if dauerapp:
@@ -415,7 +422,8 @@ class Database:
self.query_db(query, params) self.query_db(query, params)
def checkApparatExists(self, apparat_name): def checkApparatExists(self, apparat_name):
return True if self.query_db("SELECT appnr FROM semesterapparat WHERE name=?", (apparat_name,), one=True) else False return True if self.query_db("SELECT appnr FROM semesterapparat WHERE name=?", (apparat_name,), one=True) else False
def checkApparatExistsById(self, apparat_id):
return True if self.query_db("SELECT appnr FROM semesterapparat WHERE appnr=?", (apparat_id,), one=True) else False
# Statistics # Statistics
def statistic_request(self, **kwargs: Any): def statistic_request(self, **kwargs: Any):
def __query(query): def __query(query):