############################################################################ # # # Description: Ensemble de méthodes pour étendre dbmain # # afin de gérer l'administration du site # # # ############################################################################ # https:#stackoverflow.com/questions/1361340/how-can-i-do-insert-if-not-exists-in-mysql # https:#stackoverflow.com/questions/1676551/best-way-to-test-if-a-row-exists-in-a-mysql-table # Import de dbmain from src.database.dbmain import DbMain # Extension de cette classe avec dbmain class DbAdmin(DbMain): """ Classe contenant les méthodes pour gérer la BDD réservées à l'admin """ # GESTION DES UTILISATEURS DANS L'ADMIN def get_all_users_account(self) -> list: """ Récupération de tous les utilsiateur """ reqGetAll: str = """ SELECT * FROM """ + self.TABLEUSERACCOUNT self.exec_cmd(reqGetAll) result = self.cur.fetchall() return result def del_user_by_userid(self, userId: int) -> int: """ Méthode pour la suppression d'un utilisateur """ # Préparation de la requète pour voir si l'utilisateur existe 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 def register_job_category(self, jobNameEn: str, jobNameFr: str) -> int: """ Méthode pour l'ajout d'une categorie """ # 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 def del_job_category_by_jobid(self, jobId: int) -> int: """ Méthode pour la suppression d'une catégorie d'emploi """ # 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 def del_mission_by_missionid(self, missionId: int) -> int: """ Méthode pour la suppression d'une mission """ # 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