diff options
Diffstat (limited to 'src/database/dbadmin.py')
| -rw-r--r-- | src/database/dbadmin.py | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/src/database/dbadmin.py b/src/database/dbadmin.py new file mode 100644 index 0000000..dd6b4d0 --- /dev/null +++ b/src/database/dbadmin.py @@ -0,0 +1,177 @@ + +############################################################################ +# # +# Description: Ensemble de méthodes pour étendre dbmain # +# afin de gérer l'administration du site # +# # +############################################################################ + +# Import de dbmain +from . import dbmain + +# Extension de cette classe avec dbmain +class DbAdmin(dbmain.DbMain): + + # **************************************************************************** + # GESTION DES UTILISATEURS DANS L'ADMIN + # **************************************************************************** + # Récupérer toutes les infos de la table userAccount + def get_all_users_account(self): + reqGetAll = """ + SELECT + * + FROM + """ + self.TABLEUSERACCOUNT + # https:#www.php.net/manual/fr/pdostatement.fetch.php + # "PDO::FETCH_ASSOC: retourne un tableau indexé + # par le nom de la colonne comme retourné dans le jeu de résultats" + 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): + # 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 = """ + SELECT EXISTS( + SELECT 1 FROM + """ + self.TABLEUSERACCOUNT + """ + WHERE + userId = ? + LIMIT 1 + )""" + # Exécution de la requète, fetchall pour avoir le résultat + # https:#www.php.net/manual/fr/pdostatement.fetch.php + # struct par défaut req et index (fetch_both) = arr([0] => arr("req" => BOOL, [0] => BOOL]) + # PDO::FETCH_NUM : retourne un tableau indexé par le numéro de la colonne comme elle + # est retourné dans votre jeu de résultat, commençant à 0 + 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 = """DELETE FROM """ + self.TABLEUSERACCOUNT + """ WHERE userId = ?""" + # Exécution de la requète + self.exec_cmd(reqDelUser, [userId]) + # 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, jobNameFr): + # Préparation et execution de la requète pour voir si la categorie existe en anglais + reqCheckjobCategoryNameEn = """ + SELECT EXISTS( + SELECT 1 FROM + """ + self.TABLEJOBCATEGORY + """ + WHERE + jobCategoryNameEn = ? + 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 = """ + SELECT EXISTS( + SELECT 1 FROM + """ + self.TABLEJOBCATEGORY + """ + WHERE + jobCategoryNameFr = ? + 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 = """ + INSERT INTO + """ + self.TABLEJOBCATEGORY + """ + (jobCategoryNameEn, jobCategoryNameFr) + VALUES + (? ,?)""" + # Exécution de la requète + self.exec_cmd(reqjobCategoryNameAdd, [jobNameEn, jobNameFr]) + # 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): + # Préparation de la requète pour voir si l'utilisateur existe + reqCheckExistId = """ + SELECT EXISTS( + SELECT 1 FROM + """ + self.TABLEJOBCATEGORY + """ + WHERE + jobCategoryId = ? + LIMIT 1 + )""" + # Exécution de la requète, fetchall pour avoir le résultat + # struct par défaut req et index (fetch_both) = arr([0] => arr("req" => BOOL, [0] => BOOL]) + # fetch_num pour casser l'index "req" en chiffre, dict -> list + 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 = """ + DELETE FROM + """ + self.TABLEJOBCATEGORY + """ + WHERE + jobCategoryId = ?""" + # Exécution de la requète + self.exec_cmd(reqDelJobCategory, [jobId]) + # 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): + # Préparation de la requète pour voir si l'utilisateur existe + reqCheckExistId = """ + SELECT EXISTS( + SELECT 1 FROM + """ + self.TABLEMISSION + """ + WHERE + missionId = ? + 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 = """ + DELETE FROM + """ + self.TABLEMISSION + """ + WHERE + missionId = ?""" + # Exécution de la requète + self.exec_cmd(reqDelMission, [missionId]) + # Retourne 1 pour réussite + return 1 + else: + # Retourne 0 pour échec + return 0 |
