''' Dans ce fichier sont regrouper les api utilisées en phase de developpement ou deblogage. ex : la suppression d'un compte utilisateur, chose qui ne doit pas se passer en prod. en prod, le compte est desactivé. ''' from pymongo import MongoClient import pymongo import json from flask import Flask, request, jsonify #from flask_mongoengine import MongoEngine import json from bson import ObjectId import re import numpy as np import ela_index_bdd_classes as ela_index import logging from datetime import datetime import prj_common as mycommon import secrets import GlobalVariable as MYSY_GV class JSONEncoder(json.JSONEncoder): def default(self, o): if isinstance(o, ObjectId): return str(o) return json.JSONEncoder.default(self, o) ''' Cette fonction supprimer tous les tokens d'un user - argument : email. ''' def Dev_del_user_token(diction): try: client = MongoClient(MYSY_GV.CONNECTION_STRING) ''' # 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 = ['email'] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint( " Creation partner account : Le champ '" + val + "' n'existe pas, Creation formation annulée") return False ''' 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 = ['email'] for val in field_list_obligatoire: if val not in diction: mycommon.myprint(" : La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False # recuperation des paramettre mydata = {} email = "" if ("email" in diction.keys()): if diction['email']: email = diction['email'] mydata['date_update'] = str(datetime.now()) mydata['indexed'] = '0' coll_token = MYSY_GV.dbname['user_token'] myquery = {"email": email} delete_row = coll_token.delete_many(myquery) mycommon.myprint( " ela-Token - " + str(delete_row.deleted_count) + " documents deleted. user mail ==> " + str(email) + " ") return True, str(delete_row.deleted_count) + " documents deleted. user mail ==> '" + str(email) + "' " except Exception as e: mycommon.myprint(e) return False, "Impossible de supprimer les tokens"