summaryrefslogtreecommitdiff
path: root/src/database/dbadmin.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/database/dbadmin.py')
-rw-r--r--src/database/dbadmin.py177
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