diff --git a/GlobalVariable.py b/GlobalVariable.py index 507ed29..fcdb854 100644 --- a/GlobalVariable.py +++ b/GlobalVariable.py @@ -59,8 +59,7 @@ nlp = spacy.load("fr_core_news_sm") spell = SpellChecker(language='fr') token_fr_pontuation = [] - -''' +''' La taille maximal d'un champs à retourner. Au dela de 300 caractère, le système rame ''' diff --git a/Inscription_mgt.py b/Inscription_mgt.py new file mode 100644 index 0000000..df7f1b4 --- /dev/null +++ b/Inscription_mgt.py @@ -0,0 +1,154 @@ +""" +Ce fichier permets de créer les inscription des stagiaires à une formation +""" +import pymongo +from pymongo import MongoClient +import json +from bson import ObjectId +import re +from datetime import datetime +import prj_common as mycommon +import secrets +import inspect +import sys, os +import csv +import pandas as pd +from pymongo import ReturnDocument +import GlobalVariable as MYSY_GV +from math import isnan +import GlobalVariable as MYSY_GV +from datetime import timedelta + + +""" +Enregistrement d'un stagiaire +""" +def AddStagiairetoClass(diction): + try: + # Dictionnaire des champs utilisables + ''' + # 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 = ['nom', 'adr_street', 'adr_city'] + 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'est pas autorisé, Creation partenaire annulée") + return False, "Impossible de créer le stagiaire. Toutes les informations fournies ne sont pas valables" + + """ + Verification de la liste des champs obligatoires + """ + field_list_obligatoire = ['nom', 'email', 'pwd', ] + 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 créer le stagiaire, Toutes les informations necessaires n'ont pas été fournies" + + + return True + + except Exception as e: + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno)) + return False, "Impossible d'ajouter le stagiaire" + +""" +Mettre à jour les infomration d'un stgiaire +""" +def UpdateStagiairetoClass(diction): + try: + field_list = ['nom', 'adr_street', 'adr_city'] + 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'est pas autorisé, Creation partenaire annulée") + return False, "Impossible de mettre à jour stagiaire. Toutes les informations fournies ne sont pas valables" + + """ + Verification de la liste des champs obligatoires + """ + field_list_obligatoire = ['nom', 'email', 'pwd', ] + 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 mettre à jour stagiaire, Toutes les informations necessaires n'ont pas été fournies" + + return True + + except Exception as e: + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno)) + return False, "Impossible de mettre à jour les informations du stagiaire" + + + +""" +Recuperation d'un stagiaire +""" +def GetStagiaire(diction): + try: + field_list = ['nom', 'adr_street', 'adr_city'] + 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'est pas autorisé, Creation partenaire annulée") + return False, "Impossible de recuperer le stagiaire. Toutes les informations fournies ne sont pas valables" + + """ + Verification de la liste des champs obligatoires + """ + field_list_obligatoire = ['nom', 'email', 'pwd', ] + 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 le stagiaire, Toutes les informations necessaires n'ont pas été fournies" + + return True + + except Exception as e: + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno)) + return False, "Impossible de recuperer le stagiaire" + + +""" +Recuperation de liste des stagiaire d'une formation +""" +def GetAllClassStagiaire(diction): + try: + field_list = ['nom', 'adr_street', 'adr_city'] + 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'est pas autorisé, Creation partenaire annulée") + return False, "de recuperer la liste des stagiaires . Toutes les informations fournies ne sont pas valables" + + """ + Verification de la liste des champs obligatoires + """ + field_list_obligatoire = ['nom', 'email', 'pwd', ] + 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, "de recuperer la liste des stagiaires, Toutes les informations necessaires n'ont pas été fournies" + + return True + + except Exception as e: + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno)) + return False, "Impossible de recuperer la liste des stagiaires de la formation" + + diff --git a/main.py b/main.py index 671363e..4de2f60 100644 --- a/main.py +++ b/main.py @@ -29,6 +29,8 @@ import product_service as PS import ela_factures_mgt as factures import statistics as Stat import strype_payement as Stripe +import Inscription_mgt as inscription + app = Flask(__name__) cors = CORS(app, resources={r"/foo": {"origins": "*"}}) @@ -1699,6 +1701,70 @@ def strip_confirm_payment(): return jsonify(status=localStatus, payement_id=payement_id, payement_status=payement_status ) +""" +API de gestion des stagiaires à une une formation / Gestion des insciptions +Ajout d'un stagiaire +""" +@app.route('/myclass/api/AddStagiairetoClass/', methods=['POST','GET']) +@crossdomain(origin='*') +def AddStagiairetoClass(): + # On recupere le corps (payload) de la requete + payload = request.form.to_dict() + print(" ### AddStagiairetoClass : payload = ",payload) + localStatus, message= inscription.AddStagiairetoClass(payload) + return jsonify(status=localStatus, message=message ) + +""" +API de mise à jour d'un stagaire +""" +@app.route('/myclass/api/UpdateStagiairetoClass/', methods=['POST','GET']) +@crossdomain(origin='*') +def UpdateStagiairetoClass(): + # On recupere le corps (payload) de la requete + payload = request.form.to_dict() + print(" ### UpdateStagiairetoClass : payload = ",payload) + localStatus, message= inscription.UpdateStagiairetoClass(payload) + return jsonify(status=localStatus, message=message ) + + +""" +API de recuperation des infos d'un stagiaire +""" +@app.route('/myclass/api/GetStagiaire/', methods=['POST','GET']) +@crossdomain(origin='*') +def GetStagiaire(): + # On recupere le corps (payload) de la requete + payload = request.form.to_dict() + print(" ### GetStagiaire : payload = ",payload) + localStatus, message= inscription.GetStagiaire(payload) + return jsonify(status=localStatus, message=message ) + + +""" +API de recuperation de la liste de tous les stagaires d'une formation +""" +@app.route('/myclass/api/GetAllClassStagiaire/', methods=['POST','GET']) +@crossdomain(origin='*') +def GetAllClassStagiaire(): + # On recupere le corps (payload) de la requete + payload = request.form.to_dict() + print(" ### GetAllClassStagiaire : payload = ",payload) + localStatus, message= inscription.GetAllClassStagiaire(payload) + return jsonify(status=localStatus, message=message ) + +""" +API de recuperation des infos d'un stagiaire +""" +@app.route('/myclass/api/GetStagiaire/', methods=['POST','GET']) +@crossdomain(origin='*') +def GetStagiaire(): + # On recupere le corps (payload) de la requete + payload = request.form.to_dict() + print(" ### GetStagiaire : payload = ",payload) + localStatus, message= inscription.GetStagiaire(payload) + return jsonify(status=localStatus, message=message ) + + if __name__ == '__main__': print(" debut api") context = SSL.Context(SSL.SSLv23_METHOD)