From 6c6f895d112ec1515a3bdfbc60c1ba9f2bc85023 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ch=C3=A9rifBALDE?= Date: Sun, 13 Feb 2022 14:56:07 +0100 Subject: [PATCH] Validation 13/02/22 - 12h31 --- user_message_mgt.py | 130 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 user_message_mgt.py diff --git a/user_message_mgt.py b/user_message_mgt.py new file mode 100644 index 0000000..736d382 --- /dev/null +++ b/user_message_mgt.py @@ -0,0 +1,130 @@ +''' +Ce fichier traite tout ce qui est lié à la gestion des +messages envoyé par un utilisateur. +''' + + +from pymongo import MongoClient +import json +from bson import ObjectId +import re +from datetime import datetime +import prj_common as mycommon +import secrets +import inspect + + +class JSONEncoder(json.JSONEncoder): + def default(self, o): + if isinstance(o, ObjectId): + return str(o) + return json.JSONEncoder.default(self, o) + +CONNECTION_STRING = "mongodb://localhost/cherifdb" +client = MongoClient(CONNECTION_STRING) +dbname = client['cherifdb'] + + +''' +Ajout du message d'un utilisateur +''' +def add_user_message(diction): + try: + ''' + # Verification que les champs reçus dans l'API sont bien dans la liste des champs autorisés + # Cela evite le cas ou une entité tierce ajouter les valeurs inconnu dans l'API + # Ici on doit mettre tous les champs possible (obligatoire ou non) de la BDD dans la liste + # field_list. + ''' + field_list = ['type', 'sender_mail', 'sender_tel', 'recever_mail', 'recever_tel', 'object', 'message', 'token'] + incom_keys = diction.keys() + for val in incom_keys: + if val not in field_list: + mycommon.myprint(str(inspect.stack()[0][ + 3]) + " - Creation formation : Le champ '" + val + "' n'existe pas, Creation formation annulée") + return False, "Impossible d'ajouter le message" + + ''' + Une fois qu'on a controlé que toutes les clés mise dans l'API sont correcte. etape precedente, + On controle que les champs obligatoires sont presents dans la liste + ''' + field_list_obligatoire = ['sender_mail', 'sender_tel', 'recever_mail', 'recever_tel', 'message', 'object', 'token'] + + for val in field_list_obligatoire: + if val not in diction: + mycommon.myprint( + str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans liste ") + return False, "Impossible d'ajouter le message" + + # recuperation des paramettre + user_recid = "None" + token = "" + new_diction = {} + new_diction['user_recid'] = "" + + if ("token" in diction.keys()): + if diction['token']: + token = diction['token'] + new_diction['token'] = diction['token'] + + # Verification de la validité du token dans le cas des user en mode connecté + if (len(str(token)) > 0): + retval = mycommon.check_token_validity("", token) + + if retval is False: + mycommon.myprint(str(inspect.stack()[0][3]) + " - Le token n'est pas valide") + return False, "Impossible d'ajouter le message" + + # Recuperation du recid de l'utilisateur + user_recid = mycommon.get_user_recid_from_token(token) + if user_recid is False: + mycommon.myprint( + str(inspect.stack()[0][3]) + " - Impossible de recuperer le token de l'utilisateur") + return False, "Impossible d'ajouter le message" + + if ("type" in diction.keys()): + if diction['type']: + new_diction['type'] = diction['type'] + + if ("sender_mail" in diction.keys()): + if diction['sender_mail']: + new_diction['sender_mail'] = diction['sender_mail'] + + if ("sender_tel" in diction.keys()): + if diction['sender_tel']: + new_diction['sender_tel'] = diction['sender_tel'] + + if ("recever_mail" in diction.keys()): + if diction['recever_mail']: + new_diction['recever_mail'] = diction['recever_mail'] + + if ("object" in diction.keys()): + if diction['object']: + new_diction['object'] = diction['object'] + + + if ("message" in diction.keys()): + if diction['message']: + new_diction['message'] = diction['message'] + + new_diction['user_recid'] = user_recid + new_diction['sent'] = '0' + new_diction['valide'] = '1' + + coll_name = dbname['user_message'] + ret_val = coll_name.insert_one(new_diction) + + if ret_val and ret_val.inserted_id: + nb_doc = ret_val.inserted_id + mycommon.myprint("Le message a été bien enregistrée. Id message = '" + str(nb_doc) + "' ") + return True, "Le message a été bien enregistrée" + else: + return False, "Impossible d'ajouter le message" + + + except Exception as e: + mycommon.myprint(str(inspect.stack()[0][3])+" - "+str(e)) + return False, "Impossible d'ajouter le message" + + +