05/10/22 -17h

master
ChérifBALDE 2022-10-05 18:59:43 +02:00 committed by cherif
parent 9437d9c883
commit bde13eac9c
4 changed files with 120 additions and 6 deletions

View File

@ -80,7 +80,6 @@ def Dev_del_user_token(diction):
mydata['date_update'] = str(datetime.now())
mydata['indexed'] = '0'
dbname = client['cherifdb']
coll_token = MYSY_GV.dbname['user_token']
myquery = {"email": email}

View File

@ -786,8 +786,6 @@ def ela_index_article_avis_record_field(lines, article_avis_id, source_field = "
'''
## Suppression de toutes les indexation qui existe de cette formation
'''
client = MongoClient(MYSY_GV.CONNECTION_STRING)
MYSY_GV.dbname = client['cherifdb']
coll_name = MYSY_GV.dbname['elaindex_article_avis']
# check default value of parameter : source_field

View File

@ -106,10 +106,16 @@ def get_user_objectif(diction):
mycommon.myprint(str(inspect.stack()[0][3]) + " Aucun resultat trouvé pour "+str(query))
return False, " Impossible de recuperer les objectifs de l'utilisateur"
val_tmp = 1
RetObject = []
print(" ### my query = "+str(query))
for retVal in coll_name.find(query):
#mycommon.myprint(retVal)
user = retVal
user['id'] = str(val_tmp)
val_tmp = val_tmp+1
print(" #### user = "+str(user))
RetObject.append(JSONEncoder().encode(user))
return True, RetObject
@ -176,7 +182,7 @@ def desable_user_objectif(diction):
myobjectif['active'] = '-1'
myobjectif['date_update'] = str(datetime.now())
dbname = client['cherifdb']
coll_name = MYSY_GV.dbname['user_objectif']
mycommon.myprint(" on recherche " + user_recid)
@ -281,7 +287,7 @@ def add_update_user_objectif(diction):
myobjectif['active'] = '1'
myobjectif['date_update'] = str(now)
dbname = client['cherifdb']
coll_name = MYSY_GV.dbname['user_objectif']
mycommon.myprint(" on recherche recid "+user_recid)
@ -318,6 +324,104 @@ def add_update_user_objectif(diction):
return False, " Impossible de mettre à jour les objectifs utilisateur"
"""
Cette fonction modifie le profil d'un user
Un profil est definit (par defaut) par :
- name :
- nb_langue : le nombre de langue
- niveau_etude :
- etc
"""
def add_update_user_profile(diction):
try:
# Dictionnaire des champs utilisables
field_list = ['name', 'nb_lang','etude_level', 'token']
incom_keys = diction.keys()
'''
# 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.
'''
for val in incom_keys:
if str(val).lower() not in str(field_list).lower():
mycommon.myprint(" Le champ '" + val + "' n'existe pas, MAJ annulée")
return False, " Impossible de mettre à jour le profil utilisateur"
'''
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 = ['name', 'token']
for val in field_list_obligatoire :
if str(val).lower() not in diction:
mycommon.myprint(" La valeur '"+val+"' n'est pas presente dans liste ")
return False, " Impossible de mettre à jour l'objectif utilisateur"
# recuperation des paramettre
user_token = ""
user_recid = ""
if ("token" in diction.keys()):
if diction['token']:
user_token = diction['token']
# Recuperation du recid de l'utilisateur
user_recid = mycommon.get_user_recid_from_token(user_token)
if user_token is False :
mycommon.myprint(" Impossible de recuperer le token de l'utilisateur")
return False, " Impossible de mettre à jour l'objectif utilisateur"
my_data = {}
if ("nb_lang" in diction.keys()):
if diction['nb_lang']:
my_data['nb_lang'] = diction['nb_lang']
if ("name" in diction.keys()):
if diction['name']:
my_data['name'] = diction['name']
if ("etude_level" in diction.keys()):
if diction['etude_level']:
my_data['etude_level'] = diction['etude_level']
now = datetime.now()
my_data['user_recid'] = user_recid
my_data['active'] = '1'
my_data['date_update'] = str(now)
coll_name = MYSY_GV.dbname['user_profil']
#mycommon.myprint(" on recherche recid "+user_recid)
ret_val = coll_name.find_one_and_update(
{'user_recid': user_recid, 'name':str(diction['name']), 'active': '1'},
{"$set": my_data},
upsert=True,
return_document=ReturnDocument.AFTER
)
if (ret_val['_id'] is False):
mycommon.myprint(
str(inspect.stack()[0][3]) + " : Impossible d'ajouter le mode de payement")
return False, "Impossible d'ajouter le mode de payement"
else:
mycommon.myprint( str(inspect.stack()[0][3]) + " La modif du profile a bien ete faite =" + str(ret_val['_id']))
return True, " Le profile a bien été mis à jour"
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 mettre à jour les objectifs utilisateur"
def add_user_account(diction):
try:

15
main.py
View File

@ -129,7 +129,7 @@ si le nom de la formation est fourni, alors l'api va retourner la formation donn
def get_user_objectif():
# On recupere le corps (payload) de la requete
payload = request.form.to_dict()
print(" ### payload = ",payload)
print(" ### get_user_objectif : payload = ",payload)
status, retval = eua.get_user_objectif(payload)
return jsonify(status=status, message=retval)
@ -180,6 +180,19 @@ def add_update_user_objectif():
return jsonify(status=status, message=retval)
"""
Cette API met à jour le profile d'un utilisateur
"""
@app.route('/myclass/api/add_update_user_profile/', methods=['POST'])
@crossdomain(origin='*')
def add_update_user_profile():
# On recupere le corps (payload) de la requete
payload = request.form.to_dict()
print(" ### payload = ",payload)
status, retval = eua.add_update_user_profile(payload)
return jsonify(status=status, message=retval)
'''
Cette Api retourne les info d'un user accout identifié par