update 21/02/2022 - 16h00
parent
8e9f8e4e7e
commit
72529bc82b
18067
Log/log_file.log
18067
Log/log_file.log
File diff suppressed because it is too large
Load Diff
157
class_mgt.py
157
class_mgt.py
|
@ -199,18 +199,18 @@ def update_class(diction):
|
||||||
try:
|
try:
|
||||||
|
|
||||||
'''
|
'''
|
||||||
# Verification que les champs reçus dans l'API sont bien dans la liste des champs autorisés
|
# 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
|
# 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
|
# Ici on doit mettre tous les champs possible (obligatoire ou non) de la BDD dans la liste
|
||||||
# field_list.
|
# field_list.
|
||||||
'''
|
'''
|
||||||
field_list = ['external_code', 'title', 'description', 'trainer', 'institut_formation', 'distantiel',
|
field_list = ['external_code', 'title', 'description', 'trainer', 'institut_formation', 'distantiel',
|
||||||
'presentiel','price', 'url', 'duree_formation', 'token','plus_produit', 'mots_cle']
|
'presentiel','price', 'url', 'duree_formation', 'token','plus_produit', 'mots_cle', 'domaine']
|
||||||
incom_keys = diction.keys()
|
incom_keys = diction.keys()
|
||||||
for val in incom_keys:
|
for val in incom_keys:
|
||||||
if val not in field_list:
|
if val not in field_list:
|
||||||
mycommon.myprint(
|
mycommon.myprint(
|
||||||
str(inspect.stack()[0][3])+" - Creation partner account : Le champ '" + val + "' n'existe pas, Creation formation annulée")
|
str(inspect.stack()[0][3])+" - Creation partner account : Le champ '" + val + "' n'est pas accepté, Creation formation annulée")
|
||||||
return False, " Impossible de mettre à jour la formation"
|
return False, " Impossible de mettre à jour la formation"
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
@ -310,6 +310,11 @@ def update_class(diction):
|
||||||
if diction['mots_cle']:
|
if diction['mots_cle']:
|
||||||
mydata['mots_cle'] = diction['mots_cle']
|
mydata['mots_cle'] = diction['mots_cle']
|
||||||
|
|
||||||
|
if ("domaine" in diction.keys()):
|
||||||
|
if diction['domaine']:
|
||||||
|
mydata['domaine'] = diction['domaine']
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mydata['date_update'] = str(datetime.now())
|
mydata['date_update'] = str(datetime.now())
|
||||||
mydata['indexed'] = '0'
|
mydata['indexed'] = '0'
|
||||||
|
@ -817,11 +822,11 @@ def get_class(diction):
|
||||||
|
|
||||||
# Verification de la validité du token dans le cas des user en mode connecté
|
# Verification de la validité du token dans le cas des user en mode connecté
|
||||||
'''
|
'''
|
||||||
/!\ Important : si le token est vide, alors c'est une recherche faite en mode non-connecté.
|
/!\ Important : si le token est vide, alors c'est une recherche faite en mode non-connecté.
|
||||||
on doit l'accepter.
|
on doit l'accepter.
|
||||||
|
|
||||||
le controle de la validé du token est faite que ce dernier n'est pas vide.
|
le controle de la validé du token est faite que ce dernier n'est pas vide.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
user_recid = "None"
|
user_recid = "None"
|
||||||
# Verification de la validité du token/mail dans le cas des user en mode connecté
|
# Verification de la validité du token/mail dans le cas des user en mode connecté
|
||||||
|
@ -848,6 +853,133 @@ def get_class(diction):
|
||||||
filt_title = {'title': {'$regex': str(diction['title'])}}
|
filt_title = {'title': {'$regex': str(diction['title'])}}
|
||||||
|
|
||||||
|
|
||||||
|
print(" ATTTTENNTION : GESTION DU CAS OU LA PERSONNE QUI CHERCHE LE COURS EST UN UTILISATEUR : PB avec : partner_owner_recid ")
|
||||||
|
print(" #### avant requete get partner_owner_recid ="+str(user_recid)+
|
||||||
|
" filt_external_code = "+str(filt_external_code)+
|
||||||
|
" filt_title = "+str(filt_title))
|
||||||
|
|
||||||
|
for retVal in coll_name.find(({"$and": [ {'valide':'1'},{'locked':'0'},
|
||||||
|
filt_external_code, filt_title ]})):
|
||||||
|
mycommon.myprint(str(retVal))
|
||||||
|
user = retVal
|
||||||
|
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 la formation"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
'''
|
||||||
|
cette fonction recherche et retour une formation dont le proprietaire est le partenaire "partenaire_rec_id"
|
||||||
|
la clé est : l'external code.
|
||||||
|
- le token du partenaire. le token permet d'aller chercher le "rec_id"
|
||||||
|
|
||||||
|
Seules les formation "locked = 0 et valide = 1" sont recuperables par l'API
|
||||||
|
'''
|
||||||
|
def get_partner_class(diction):
|
||||||
|
try:
|
||||||
|
'''
|
||||||
|
# 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 = ['external_code', 'token', 'title', 'valide', 'locked']
|
||||||
|
incom_keys = diction.keys()
|
||||||
|
for val in incom_keys:
|
||||||
|
if val not in field_list:
|
||||||
|
mycommon.myprint( str(inspect.stack()[0][3])+ " - Creation partner account : Le champ '" + val + "' n'existe pas, Creation formation annulée")
|
||||||
|
return False, " Impossible de recuperer la formation"
|
||||||
|
|
||||||
|
'''
|
||||||
|
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 la formation"
|
||||||
|
|
||||||
|
# recuperation des paramettre
|
||||||
|
mydata = {}
|
||||||
|
my_external_code = ""
|
||||||
|
my_token = ""
|
||||||
|
|
||||||
|
|
||||||
|
if ("external_code" in diction.keys()):
|
||||||
|
if diction['external_code']:
|
||||||
|
my_external_code = diction['external_code']
|
||||||
|
|
||||||
|
if ("token" in diction.keys()):
|
||||||
|
if diction['token']:
|
||||||
|
my_token = diction['token']
|
||||||
|
|
||||||
|
|
||||||
|
'''
|
||||||
|
Gestion des filters.
|
||||||
|
'''
|
||||||
|
|
||||||
|
external_code_crit = {}
|
||||||
|
if ("external_code" in diction.keys()):
|
||||||
|
if diction['external_code']:
|
||||||
|
external_code_crit['external_code'] = diction['external_code']
|
||||||
|
|
||||||
|
title_crit = {}
|
||||||
|
if ("title" in diction.keys()):
|
||||||
|
if diction['title']:
|
||||||
|
title_crit['title'] = diction['title']
|
||||||
|
|
||||||
|
|
||||||
|
coll_name = dbname['myclass']
|
||||||
|
|
||||||
|
# verifier que le token et l'email sont ok
|
||||||
|
coll_token = dbname['user_token']
|
||||||
|
|
||||||
|
# Verification de la validité du token dans le cas des user en mode connecté
|
||||||
|
'''
|
||||||
|
/!\ Important : le token ne doit jamais etre vide car cette fonction a pour objectif
|
||||||
|
de retourner les formation edité par un partenaire.
|
||||||
|
|
||||||
|
Il dont obligatoirement est en mode connecté
|
||||||
|
'''
|
||||||
|
|
||||||
|
user_recid = "None"
|
||||||
|
# Verification de la validité du token/mail dans le cas des user en mode connecté
|
||||||
|
if (len(str(my_token)) > 0):
|
||||||
|
retval = mycommon.check_token_validity("", my_token)
|
||||||
|
|
||||||
|
if retval is False:
|
||||||
|
mycommon.myprint( str(inspect.stack()[0][3])+" - Le token n'est pas valide")
|
||||||
|
return False, " Impossible de recuperer la formation"
|
||||||
|
|
||||||
|
# Recuperation du recid de l'utilisateur
|
||||||
|
user_recid = mycommon.get_user_recid_from_token(my_token)
|
||||||
|
if user_recid is False:
|
||||||
|
mycommon.myprint(str(inspect.stack()[0][3])+" - Impossible de recuperer le token de l'utilisateur")
|
||||||
|
return False, " Impossible de recuperer la formation"
|
||||||
|
|
||||||
|
if (len(str(my_token)) <= 0):
|
||||||
|
mycommon.myprint(str(inspect.stack()[0][3]) + " - Le token est vide")
|
||||||
|
return False, " Impossible de recuperer la formation"
|
||||||
|
|
||||||
|
|
||||||
|
RetObject = []
|
||||||
|
filt_external_code = {}
|
||||||
|
if ("external_code" in diction.keys()):
|
||||||
|
filt_external_code = {'external_code':{'$regex':str(diction['external_code'])}}
|
||||||
|
|
||||||
|
filt_title = {}
|
||||||
|
if ("title" in diction.keys()):
|
||||||
|
filt_title = {'title': {'$regex': str(diction['title'])}}
|
||||||
|
|
||||||
|
|
||||||
print(" ATTTTENNTION : GESTION DU CAS OU LA PERSONNE QUI CHERCHE LE COURS EST UN UTILISATEUR : PB avec : partner_owner_recid ")
|
print(" ATTTTENNTION : GESTION DU CAS OU LA PERSONNE QUI CHERCHE LE COURS EST UN UTILISATEUR : PB avec : partner_owner_recid ")
|
||||||
print(" #### avant requete get partner_owner_recid ="+str(user_recid)+
|
print(" #### avant requete get partner_owner_recid ="+str(user_recid)+
|
||||||
" filt_external_code = "+str(filt_external_code)+
|
" filt_external_code = "+str(filt_external_code)+
|
||||||
|
@ -869,6 +1001,9 @@ def get_class(diction):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_class_global_search(search_string):
|
def get_class_global_search(search_string):
|
||||||
try:
|
try:
|
||||||
mycommon.myprint(" search_string", search_string)
|
mycommon.myprint(" search_string", search_string)
|
||||||
|
|
17
main.py
17
main.py
|
@ -243,6 +243,22 @@ def get_class():
|
||||||
return jsonify(status=status, message=retval)
|
return jsonify(status=status, message=retval)
|
||||||
|
|
||||||
|
|
||||||
|
'''
|
||||||
|
Cette api recupete la formation d'un partenaire donnée
|
||||||
|
elle est appelée exclusivement en mode connecté
|
||||||
|
|
||||||
|
- le token du partenaire
|
||||||
|
'''
|
||||||
|
@app.route('/myclass/api/get_partner_class/', methods=['POST','GET'])
|
||||||
|
@crossdomain(origin='*')
|
||||||
|
def get_partner_class():
|
||||||
|
# On recupere le corps (payload) de la requete
|
||||||
|
payload = request.form.to_dict()
|
||||||
|
print(" ### payload = ",str(payload)+" IP requester = "+str(request.remote_addr))
|
||||||
|
|
||||||
|
status, retval = cm.get_partner_class(payload)
|
||||||
|
return jsonify(status=status, message=retval)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@app.route('/myclass/api/update_class/', methods=['POST'])
|
@app.route('/myclass/api/update_class/', methods=['POST'])
|
||||||
|
@ -250,6 +266,7 @@ def get_class():
|
||||||
def update_class():
|
def update_class():
|
||||||
# On recupere le corps (payload) de la requete
|
# On recupere le corps (payload) de la requete
|
||||||
payload = request.form.to_dict()
|
payload = request.form.to_dict()
|
||||||
|
payload = request.form.to_dict()
|
||||||
print(" ### payload = ",payload)
|
print(" ### payload = ",payload)
|
||||||
status, retval = cm.update_class(payload)
|
status, retval = cm.update_class(payload)
|
||||||
return jsonify(status=status, message=retval)
|
return jsonify(status=status, message=retval)
|
||||||
|
|
Loading…
Reference in New Issue