22/06/22 - 09h30
parent
d385ef8601
commit
8836da12a4
14
main.py
14
main.py
|
@ -817,6 +817,20 @@ def add_user_message():
|
|||
status, retval = um.add_user_message(payload)
|
||||
return jsonify(status=status, message=retval)
|
||||
|
||||
'''
|
||||
Cette API recuperer le message posté par un utilisateur.
|
||||
Le premier cas d'usage est la recuperation post effectué sur un article par un
|
||||
utilisateur
|
||||
'''
|
||||
@app.route('/myclass/api/get_user_message/', methods=['POST','GET'])
|
||||
@crossdomain(origin='*')
|
||||
def get_user_message():
|
||||
# On recupere le corps (payload) de la requete
|
||||
payload = request.form.to_dict()
|
||||
print(" ### payload = ",payload)
|
||||
status, retval = um.get_user_message(payload)
|
||||
return jsonify(status=status, message=retval)
|
||||
|
||||
|
||||
|
||||
'''
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
'''
|
||||
Ce fichier traite tout ce qui est lié à la gestion des
|
||||
messages envoyé par un utilisateur.
|
||||
|
||||
le type de message definit son objet et son traitement. par exemple :
|
||||
- type = "mail" ==> c'est email à envoyer
|
||||
- type = "phone" ==> c'est un sms à envoyer
|
||||
- type = "comment_article" ==> c'est commentaire posté sur un articles par un user.
|
||||
'''
|
||||
|
||||
|
||||
import pymongo
|
||||
from pymongo import MongoClient
|
||||
import json
|
||||
from bson import ObjectId
|
||||
|
@ -13,6 +17,9 @@ import prj_common as mycommon
|
|||
import secrets
|
||||
import inspect
|
||||
import sys, os
|
||||
import GlobalVariable as MYSY_GV
|
||||
from pymongo import MongoClient
|
||||
|
||||
|
||||
class JSONEncoder(json.JSONEncoder):
|
||||
def default(self, o):
|
||||
|
@ -20,10 +27,6 @@ class JSONEncoder(json.JSONEncoder):
|
|||
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
|
||||
|
@ -41,7 +44,7 @@ def add_user_message(diction):
|
|||
'''
|
||||
field_list = ['type', 'sender_mail', 'sender_tel', 'recever_mail', 'recever_tel', 'object', 'message',
|
||||
'token', 'user_ip', 'user_country_code', 'user_country_name', 'user_city','user_postal',
|
||||
'user_latitude', 'user_longitude', 'user_state', 'sender_name']
|
||||
'user_latitude', 'user_longitude', 'user_state', 'sender_name', 'article_avis_url']
|
||||
incom_keys = diction.keys()
|
||||
for val in incom_keys:
|
||||
if val not in field_list:
|
||||
|
@ -156,11 +159,20 @@ def add_user_message(diction):
|
|||
new_diction['user_state'] = diction['user_state']
|
||||
|
||||
|
||||
if ("article_avis_url" in diction.keys()):
|
||||
if diction['article_avis_url']:
|
||||
new_diction['article_avis_url'] = diction['article_avis_url']
|
||||
|
||||
|
||||
|
||||
new_diction['user_recid'] = user_recid
|
||||
new_diction['sent'] = '0'
|
||||
new_diction['valide'] = '1'
|
||||
new_diction['date_update'] = str(datetime.now())
|
||||
new_diction['locked'] = "0"
|
||||
|
||||
coll_name = dbname['user_message']
|
||||
|
||||
coll_name = MYSY_GV.dbname['user_message']
|
||||
ret_val = coll_name.insert_one(new_diction)
|
||||
|
||||
if ret_val and ret_val.inserted_id:
|
||||
|
@ -178,3 +190,63 @@ def add_user_message(diction):
|
|||
|
||||
|
||||
|
||||
'''
|
||||
Recuperation d'un message asscié à un article.
|
||||
C'est le cas de commentaires d'articles.
|
||||
|
||||
'''
|
||||
def get_user_message(diction):
|
||||
try:
|
||||
|
||||
# Dictionnaire des champs utilisables
|
||||
field_list = ['type', 'article_avis_url']
|
||||
incom_keys = diction.keys()
|
||||
for val in incom_keys:
|
||||
if val not in field_list:
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - Le champ '" + val + "' n'existe pas, requete annulée")
|
||||
return False, " Impossible de recuperer 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 = ['type', 'article_avis_url']
|
||||
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 de recuperer le message"
|
||||
|
||||
mytype = ""
|
||||
if ("type" in diction.keys()):
|
||||
if diction['type']:
|
||||
mytype = diction['type']
|
||||
|
||||
myurl = ""
|
||||
if ("article_avis_url" in diction.keys()):
|
||||
if diction['article_avis_url']:
|
||||
myurl = diction['article_avis_url']
|
||||
|
||||
|
||||
coll_name = MYSY_GV.dbname['user_message']
|
||||
|
||||
|
||||
RetObject = []
|
||||
tmp_key = 1
|
||||
for retVal in coll_name.find({'type': str(mytype), 'article_avis_url': str(myurl), "valide":"1", "locked":"0"},
|
||||
{"sender_name": 1, "sender_mail":1, "message":1, "date_update":1, "_id":1}).\
|
||||
sort([("date_update",pymongo.DESCENDING)]):
|
||||
mycommon.myprint(str(retVal))
|
||||
user = retVal
|
||||
user['tmp_key'] = tmp_key
|
||||
tmp_key = tmp_key + 1
|
||||
RetObject.append(JSONEncoder().encode(user))
|
||||
|
||||
return True, RetObject
|
||||
|
||||
|
||||
except Exception as e:
|
||||
exc_type, exc_obj, exc_tb = sys.exc_info()
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
|
||||
return False, "Impossible de recuperer le message"
|
Loading…
Reference in New Issue