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:
|
||||
|
||||
'''
|
||||
# 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.
|
||||
'''
|
||||
# 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', '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()
|
||||
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")
|
||||
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"
|
||||
|
||||
'''
|
||||
|
@ -310,6 +310,11 @@ def update_class(diction):
|
|||
if 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['indexed'] = '0'
|
||||
|
@ -817,11 +822,11 @@ def get_class(diction):
|
|||
|
||||
# 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é.
|
||||
on doit l'accepter.
|
||||
/!\ Important : si le token est vide, alors c'est une recherche faite en mode non-connecté.
|
||||
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"
|
||||
# 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'])}}
|
||||
|
||||
|
||||
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(" #### avant requete get partner_owner_recid ="+str(user_recid)+
|
||||
" filt_external_code = "+str(filt_external_code)+
|
||||
|
@ -869,6 +1001,9 @@ def get_class(diction):
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def get_class_global_search(search_string):
|
||||
try:
|
||||
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)
|
||||
|
||||
|
||||
'''
|
||||
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'])
|
||||
|
@ -250,6 +266,7 @@ def get_class():
|
|||
def update_class():
|
||||
# On recupere le corps (payload) de la requete
|
||||
payload = request.form.to_dict()
|
||||
payload = request.form.to_dict()
|
||||
print(" ### payload = ",payload)
|
||||
status, retval = cm.update_class(payload)
|
||||
return jsonify(status=status, message=retval)
|
||||
|
|
Loading…
Reference in New Issue