diff --git a/ela_user_account.py b/ela_user_account.py index feb03bd..c4d6902 100644 --- a/ela_user_account.py +++ b/ela_user_account.py @@ -116,7 +116,8 @@ def get_user_objectif(diction): return True, RetObject except Exception as e: - mycommon.myprint(str(inspect.stack()[0][3]) + str(e)) + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de recuperer les objectifs de l'utilisateur" @@ -200,7 +201,8 @@ def desable_user_objectif(diction): return False, "impossible de desactivier cette formation" except Exception as e: - mycommon.myprint(e) + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, "Impossible de desactivier cette formation" @@ -316,7 +318,8 @@ def add_update_user_objectif(diction): return True, " L'objectif a bien été créé" except Exception as e: - mycommon.myprint(e) + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de mettre à jour les objectifs utilisateur" @@ -391,7 +394,8 @@ def add_user_account(diction): return True, "Le compte a été bien ajouté, merci de l'activer depuis votre boite email" except Exception as e: - mycommon.myprint(e) + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, "Impossible de créer le compte utilisateur" @@ -427,7 +431,8 @@ def valide_user_account(value): except Exception as e: - mycommon.myprint(e) + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de valider le compte utilisateur" @@ -760,7 +765,8 @@ def change_user_pwd(diction): except Exception as e: - mycommon.myprint(e) + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, "Impossible de mettre à jour le mot de passe de l'utilisateur" @@ -846,7 +852,8 @@ def change_uer_email(diction): except Exception as e: - mycommon.myprint(e) + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, "Impossible de mettre à jour l'email principal" @@ -931,7 +938,8 @@ def delete_user_account(diction): except Exception as e: - mycommon.myprint(e) + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, "Impossible de supprimer le compte utilisateur" @@ -1001,7 +1009,8 @@ def lock_user_account(diction): return False, "Impossible de verrouiller le compte utilisateur" except Exception as e: - mycommon.myprint(e) + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, "Impossible de mettre à jour le compte utilisateur" @@ -1073,5 +1082,93 @@ def desable_user_account(diction): return False, "Impossible de desactiver le compte utilisateur" except Exception as e: - mycommon.myprint(e) + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, "Impossible de mettre à jour le compte utilisateur" + + +''' +Cette fonction retourne l'historique de recherche +d'un utilisateur +''' + + +def get_user_recherche_history(diction): + try: + # Dictionnaire des champs utilisables + + ''' + # 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 = ['token'] + 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'est pas autorisé, opération annulée") + return False, "Impossible de recuperer l'historique de recherche" + + ''' + 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 = ['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 de recuperer l'historique de recherche" + + # recuperation des paramettre + token_value = "" + user_recid = "" + mydata = {} + + if diction['token']: + token_value = diction['token'] + + # Verification de la validité du token/mail dans le cas des user en mode connecté + if (len(str(token_value)) <= 0): + mycommon.myprint(str(inspect.stack()[0][3]) + " Le token est vide") + return False, "Le token est vide" + + retval = mycommon.check_token_validity("", token_value) + + if retval is False: + mycommon.myprint(str(inspect.stack()[0][3]) + " Le token n'est pas valide") + return False, "Le token n'est pas valide" + + # Recuperation du recid du user + user_recid = mycommon.get_user_recid_from_token(token_value) + if user_recid is False: + mycommon.myprint(str(inspect.stack()[0][3]) + " Impossible de recuperer le recid du user") + return False, " Impossible de mettre à jour le mot de passe" + + query = {} + query['user_recid'] = user_recid + query['valide'] = '1' + + coll_name = dbname['user_recherche'] + + # Verification si ce user a deja une formation du meme nom + tmp = coll_name.find(query, {"_id": 0}).count() + if (tmp <= 0): + mycommon.myprint(str(inspect.stack()[0][3]) + " Aucun resultat trouvé pour " + str(query)) + return False, " Impossible de recuperer l'historique de recherche de l'utilisateur" + + RetObject = [] + local_id = 0 + for retVal in coll_name.find(query, {"_id": 0, "valide":0, "user_recid":0}): + mycommon.myprint(retVal) + user = retVal + user['id'] = local_id + local_id = local_id + 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) + " - Line : " + str(exc_tb.tb_lineno)) + return False, "Impossible de recuperer l'historique de recherche" diff --git a/main.py b/main.py index 98ac109..fa9e986 100644 --- a/main.py +++ b/main.py @@ -147,6 +147,19 @@ def desable_user_objectif(): +''' +Cette API recupere l'historique de recherche +d'un utilisateur +''' +@app.route('/myclass/api/get_user_recherche_history/', methods=['POST','POST']) +@crossdomain(origin='*') +def get_user_recherche_history(): + # On recupere le corps (payload) de la requete + payload = request.form.to_dict() + print(" ### payload = ",payload) + status, retval = eua.get_user_recherche_history(payload) + return jsonify(status=status, message=retval) + ''' Cette API ajoute un objectif à un utilisateur