diff options
Diffstat (limited to 'src/database/dbuser.py')
| -rw-r--r-- | src/database/dbuser.py | 46 |
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 |
