17/04/22 - 16h30

master
ChérifBALDE 2022-04-18 16:52:25 +02:00 committed by cherif
parent 5f46a92ee8
commit 64822da525
2 changed files with 82 additions and 0 deletions

View File

@ -42,6 +42,7 @@ La taille maximal d'un champs à retourner.
Au dela de 300 caractère, le système rame
'''
MAX_CARACT = 300
MAX_CARACT_DEDUIT = 50
@ -622,3 +623,71 @@ def store_recherche_article_avis(diction, user_recid=""):
''''
Cette fonction retourne la liste
des articles/avis à la une'''
def get_article_avis_alaune(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 = ['token', 'user_ip', 'user_country_code', 'user_country_name', 'user_city',
'user_postal', 'user_latitude', 'user_longitude', 'user_state']
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'existe pas, recherche annulée")
return False, " Le champ '" + val + "' n'existe pas, recherche annulée"
'''
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(" : La valeur '" + val + "' n'est pas presente dans liste ")
return False, " : La valeur '" + val + "' n'est pas presente dans liste ",
coll_name = dbname['articles_avis']
insertObject = []
for x in coll_name.find({'valide': '1', 'locked': '0', 'isalaune': '1'},
{"_id": 0, "indexed": 0, "indexed_desc": 0, "indexed_obj": 0, "isalaune": 0,
"valide": 0, "locked": 0, "url_formation": 0, }).sort(
[("date_avis", pymongo.ASCENDING), ("title_formation", pymongo.ASCENDING)]):
val = x['qualite']
if (len(x['qualite']) > MAX_CARACT_DEDUIT):
x['qualite'] = val[:MAX_CARACT_DEDUIT] + " ..."
else:
x['qualite'] = val[:MAX_CARACT_DEDUIT]
val = x['avis']
if (len(x['avis']) > MAX_CARACT_DEDUIT):
x['avis'] = val[:MAX_CARACT_DEDUIT] + " ..."
else:
x['avis'] = val[:MAX_CARACT_DEDUIT]
user = x
insertObject.append(JSONEncoder().encode(user))
print(" getObject = ", str(insertObject))
return True, insertObject
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 les articles à la Une"

13
main.py
View File

@ -905,6 +905,19 @@ def recherche_articles_avis():
return jsonify(status=status, message=result)
'''
Cette API retourne les articles et avis à la Une'''
@app.route('/myclass/api/get_article_avis_alaune/', methods=['GET','POST'])
@crossdomain(origin='*')
def get_article_avis_alaune():
# On recupere le corps (payload) de la requete
payload = request.form.to_dict()
print(" ### payload = ", payload)
status, result = aa.get_article_avis_alaune(payload)
return jsonify(status=status, message=result)
if __name__ == '__main__':
print(" debut api")