diff --git a/Dev_api_functions.py b/Dev_api_functions.py index cf7a16d..1e6c421 100644 --- a/Dev_api_functions.py +++ b/Dev_api_functions.py @@ -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} diff --git a/Ela_Spacy.py b/Ela_Spacy.py index 42c906e..9bd6c31 100644 --- a/Ela_Spacy.py +++ b/Ela_Spacy.py @@ -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 diff --git a/ela_user_account.py b/ela_user_account.py index 0dca72f..4a8435d 100644 --- a/ela_user_account.py +++ b/ela_user_account.py @@ -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: diff --git a/main.py b/main.py index c5e2cba..7dddca6 100644 --- a/main.py +++ b/main.py @@ -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