diff --git a/GlobalVariable.py b/GlobalVariable.py index ea2b0a5..df6c595 100644 --- a/GlobalVariable.py +++ b/GlobalVariable.py @@ -130,7 +130,7 @@ HELP_WORD_QUERY_LIMIT = 3 ''' Les formats d'image accepté ''' -IMG_FORMAT=['jpg', 'jpeg', 'png', 'jpe', 'webp'] +IMG_FORMAT=['jpg', 'jpeg', 'png', 'jpe', 'webp', 'gif'] diff --git a/main.py b/main.py index 6a80d43..65f7e11 100644 --- a/main.py +++ b/main.py @@ -1495,10 +1495,24 @@ Cette API recuperer l'image de profil d'une formation def getRecodedClassImage(): # On recupere le corps (payload) de la requete payload = request.form.to_dict() - print(" ### payload = ",payload) + print(" ### getRecodedClassImage payload = ",payload) status, myimg= mycommon.getRecodedClassImage(payload) return jsonify(status=status, message=myimg) +""" +Cette API supprimer une l'image de profil d'une formation +""" +@app.route('/myclass/api/DeleteRecodedClassImage/', methods=['POST','GET']) +@crossdomain(origin='*') +def DeleteRecodedClassImage(): + # On recupere le corps (payload) de la requete + payload = request.form.to_dict() + print(" ### DeleteRecodedClassImage payload = ",payload) + status, message= mycommon.DeleteRecodedClassImage(payload) + return jsonify(status=status, message=message) + + + """ Cette API de Recuperation d'une image de profils d'une formation pour le mode non connecté. c'est a dire depuis le front diff --git a/prj_common.py b/prj_common.py index 75670fb..d64a40e 100644 --- a/prj_common.py +++ b/prj_common.py @@ -1653,6 +1653,98 @@ def getRecodedClassImage(diction=None): +''' +Suppression d'une image de profils d'une formation +''' +def DeleteRecodedClassImage(diction=None): + try: + # Dictionnaire des champs utilisables + field_list = ['token', 'type', 'class_external_code'] + incom_keys = diction.keys() + + ''' + # 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. + ''' + for val in incom_keys: + if str(val).lower() not in str(field_list).lower(): + myprint( + str(inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas accepté dans cette API") + return False, "Impossible de supprimer le logo de 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','type','class_external_code'] + for val in field_list_obligatoire: + if str(val).lower() not in diction: + myprint( + str(inspect.stack()[0][3]) + " La valeur '" + val + "' n'est pas presente dans liste des champs") + return False, "Impossible de supprimer le logo de la formation" + + mydata = {} + mytoken = "" + + # recuperation des paramettre + if ("token" in diction.keys()): + if diction['token']: + mytoken = diction['token'] + + mytype = "" + if ("type" in diction.keys()): + if diction['type']: + mytype = diction['type'] + + myclassexternalcode = "" + if ("class_external_code" in diction.keys()): + if diction['class_external_code']: + myclassexternalcode = diction['class_external_code'] + + + ''' + Verification de la validité du token et recuperation du recid du user + ''' + retval = check_user_validity("", str(mytoken)) + + if retval is False: + myprint(str(inspect.stack()[0][3]) + " - Le token n'est pas valide") + return False, "Impossible de supprimer le logo de la formation" + + + if (mytype == "partner"): + user_recid = get_parnter_recid_from_token(str(mytoken)) + if user_recid is False: + myprint(str(inspect.stack()[0][3]) + " - Impossible de recuperer le recid du user") + return False, " Les informations d'identification sont incorrectes" + + else: + myprint(str(inspect.stack()[0][3]) + " - l'API est incorrecte. le type n'est pas renseingé") + return False, " Les informations d'identification sont incorrectes" + + myuserrecid = user_recid + + + coll_name = MYSY_GV.dbname['image_ch'] + + + myquery = {'recid':myuserrecid, "type":"profil_class", "class_external_code":str(myclassexternalcode)} + delete_row = coll_name.delete_many(myquery) + myprint(str(inspect.stack()[0][3]) + "- "+str(delete_row.deleted_count)+" image logo supprimée(s) pour la formation class_external_code = "+str(myclassexternalcode)) + + return True, str(delete_row.deleted_count)+" supprimée(s)" + + + + except Exception as e: + exc_type, exc_obj, exc_tb = sys.exc_info() + print(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno)) + return False, "Impossible de supprimer le logo de la formation" + + + ''' Recuperation d'une image de profils d'une formation pour le mode non connecté. c'est a dire depuis le front '''