############################################################################ # # # Description: Ensemble de méthodes pour étendre dbmain # # afin de gérer l'administration du site # # # ############################################################################ # Import de dbmain from src.database.dbmain import DbMain # Extension de cette classe avec dbmain class DbAdmin(DbMain): # **************************************************************************** # GESTION DES UTILISATEURS DANS L'ADMIN # **************************************************************************** # Récupérer toutes les infos de la table userAccount def get_all_users_account(self) -> list: reqGetAll: str = """ SELECT * FROM """ + self.TABLEUSERACCOUNT self.exec_cmd(reqGetAll) result = self.cur.fetchall() return result # https:#stackoverflow.com/questions/1361340/how-can-i-do-insert-if-not-exists-in-mysql # Suppresion d'un utilisateur def del_user_by_userid(self, userId: int) -> int: # Préparation de la requète pour voir si l'utilisateur existe # https:#stackoverflow.com/questions/1676551/best-way-to-test-if-a-row-exists-in-a-mysql-table reqCheckExistId: str = """ SELECT EXISTS( SELECT 1 FROM """ + self.TABLEUSERACCOUNT + """ WHERE userId = %s LIMIT 1 )""" self.exec_cmd(reqCheckExistId, [userId]) reqResult = self.cur.fetchall() # Si il existe if (reqResult[0][0]): # Préparation de la requète pour suppression reqDelUser: str = """DELETE FROM """ + self.TABLEUSERACCOUNT + """ WHERE userId = %s""" # Exécution de la requète self.exec_cmd(reqDelUser, [userId], True) # Retourne 1 pour réussite return 1 else: # Retourne 0 pour échec return 0 # **************************************************************************** # GESTION DES EMPLOIS DANS L'ADMIN # **************************************************************************** # Ajout d'une categorie def register_job_category(self, jobNameEn: str, jobNameFr: str) -> int: # Préparation et execution de la requète pour voir si la categorie existe en anglais reqCheckjobCategoryNameEn: str = """ SELECT EXISTS( SELECT 1 FROM """ + self.TABLEJOBCATEGORY + """ WHERE jobCategoryNameEn = %s LIMIT 1 )""" self.exec_cmd(reqCheckjobCategoryNameEn, [jobNameEn]) reqResultEn = self.cur.fetchall() # Si il n'existe pas en anglais if not reqResultEn[0][0]: # Préparation et execution de la requète pour voir si la categorie existe en Français reqCheckjobCategoryNameFr: str = """ SELECT EXISTS( SELECT 1 FROM """ + self.TABLEJOBCATEGORY + """ WHERE jobCategoryNameFr = %s LIMIT 1 )""" self.exec_cmd(reqCheckjobCategoryNameFr, [jobNameFr]) reqResultFr = self.cur.fetchall() # Si il n'existe pas en Français non plus if not reqResultFr[0][0]: # Préparation de la requète pour l'ajout reqjobCategoryNameAdd: str = """ INSERT INTO """ + self.TABLEJOBCATEGORY + """ (jobCategoryNameEn, jobCategoryNameFr) VALUES (%s ,%s)""" # Exécution de la requète self.exec_cmd(reqjobCategoryNameAdd, [jobNameEn, jobNameFr], True) # Retourne 1 pour réussite return 1 else: # Retourne 0 pour échec return 0 else: # Retourne 0 pour échec return 0 # Suppresion d'un utilisateur def del_job_category_by_jobid(self, jobId: int) -> int: # Préparation de la requète pour voir si l'utilisateur existe reqCheckExistId: str = """ SELECT EXISTS( SELECT 1 FROM """ + self.TABLEJOBCATEGORY + """ WHERE jobCategoryId = %s LIMIT 1 )""" # Exécution de la requète, fetchall pour avoir le résultat self.exec_cmd(reqCheckExistId, [jobId]) reqResult = self.cur.fetchall() # Si il existe if (reqResult[0][0]): # Préparation de la requète pour suppression reqDelJobCategory: str = """ DELETE FROM """ + self.TABLEJOBCATEGORY + """ WHERE jobCategoryId = %s""" # Exécution de la requète self.exec_cmd(reqDelJobCategory, [jobId], True) # Retourne 1 pour réussite return 1 else: # Retourne 0 pour échec return 0 # **************************************************************************** # GESTION DES MISSIONS DANS L'ADMIN # **************************************************************************** # Suppresion d'une mission def del_mission_by_missionid(self, missionId: int) -> int: # Préparation de la requète pour voir si l'utilisateur existe reqCheckExistId: str = """ SELECT EXISTS( SELECT 1 FROM """ + self.TABLEMISSION + """ WHERE missionId = %s LIMIT 1 )""" # Exécution de la requète self.exec_cmd(reqCheckExistId, [missionId]) reqResult = self.cur.fetchall() # Si il existe if (reqResult[0][0]): # Préparation de la requète pour suppression reqDelMission: str = """ DELETE FROM """ + self.TABLEMISSION + """ WHERE missionId = %s""" # Exécution de la requète self.exec_cmd(reqDelMission, [missionId], True) # Retourne 1 pour réussite return 1 else: # Retourne 0 pour échec return 0