Validation 13/02/22 - 12h31
parent
1570495ef4
commit
6c6f895d11
|
@ -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"
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue