summaryrefslogtreecommitdiff
path: root/src/database/dbuser.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/database/dbuser.py')
-rw-r--r--src/database/dbuser.py46
1 files changed, 16 insertions, 30 deletions
diff --git a/src/database/dbuser.py b/src/database/dbuser.py
index e71d936..a57845c 100644
--- a/src/database/dbuser.py
+++ b/src/database/dbuser.py
@@ -66,11 +66,10 @@ class DbUser(dbmain.DbMain):
return result[0]
# Mise à jour des infos d'un utilisateur
- def update_user_infos(self, userInfos, userId, isPro, userJobs=None):
+ def update_user_infos(
+ self, userInfos: list, userId: int,
+ isPro: bool, oldJobs: list = None, newJobs: list = None) -> None:
# Préparation de la requète pour mise à jour des infos
- # J'ai préféré faire deux requètes distinctes et ne pas utiliser des valeurs
- # passées par POST (key => value) pour gérer les noms des colonnes
- # car je préfère les passer en "dur" dans mes requêtes (risque d'injection SQL%s).
reqAddInfoClient = """
REPLACE INTO
""" + self.TABLEUSERINFO + """
@@ -94,36 +93,23 @@ class DbUser(dbmain.DbMain):
(%s, %s)"""
reqRemoveInfoProJobs = """
DELETE FROM
- """ + self.tableUserJob + """
+ """ + self.TABLEUSERJOB + """
WHERE
jobCategoryId = %s
AND
userId = %s"""
- # if not isPro:
- # # Exécution de la requète
- # # https:#www.php.net/manual/fr/function.array-values.php
- # # Pour passer de "dict" a "list" -> array_values()
- # args = [i for i in userInfos]
- # args.push(userId)
- # self.exec_cmd(reqAddInfoClient, args)
- # else:
- # # https:#stackoverflow.com/questions/15986235/how-to-use-json-stringify-and-json-decode-properly
- # # Récupération des emplois dans le JSON et supression de ces derniers de la liste
- # selectedJobs = json_decode(html_entity_decode(userInfos["jobs"]))
- # unset(userInfos["jobs"])
- # # array_value -> Qu'est ce qui est présent dans 1 mais pas dans 2 %s
- # # Comparaison des jobs anciennement présent avec ceux sélectionnés, donc ajoutés.
- # jobsAdded = array_values(array_diff(selectedJobs, userJobs))
- # # Comparaison des jobs deja présent avec ceux sélectionnés, donc ajoutés.
- # jobsRemoved = array_values(array_diff(userJobs, selectedJobs))
- # # on continue classiquement avec les autres éléments
- # args = array_values(userInfos)
- # array_push(args, userId)
- # self.exec_cmd(reqAddInfoPro, args)
- # for i in jobsAdded:
- # self.exec_cmd(reqAddInfoProJobs, array(jobsAdded[i], userId))
- # for i in jobsRemoved:
- # self.exec_cmd(reqRemoveInfoProJobs, array(jobsRemoved[i], userId))
+ if not isPro:
+ userInfos.append(userId)
+ self.exec_cmd(reqAddInfoClient, userInfos, True)
+ else:
+ userInfos.append(userId)
+ self.exec_cmd(reqAddInfoPro, userInfos, True)
+ jobsAdded = [i for i in newJobs if i not in oldJobs]
+ jobsRemoved = [i for i in oldJobs if i not in newJobs]
+ for i in jobsAdded:
+ self.exec_cmd(reqAddInfoProJobs, [i, userId], True)
+ for i in jobsRemoved:
+ self.exec_cmd(reqRemoveInfoProJobs, [i, userId], True)
# ****************************************************************************
# GESTION DU TOKEN AUTOLOGIN