Example #1
0
def addUser():
    if request.method == 'POST':
        # Recuperation + traitement des données du formulaire
        data = Utils.parseForm(dict(request.form))
        # Cryptage des mots des passe + Decryptage des id
        data["password"] = Crypt.encode(cfg._APP_SECRET_KEY, data["password"])
        data["id"] = Crypt.decode(cfg._APP_SECRET_KEY, data["id"])
        mdl = AuthUsersModel(cfg._BDD_PATH)
        # Verification
        if mdl.is_unique_username(data["username"]) is False:
            return Render.jsonTemplate(
                _OPERATION,
                "Un utilisateur avec cet identifiant existe déjà",
                categorie="WARNING")
        # Traitement en BDD
        try:
            mdl.insertUser(data)
        except SqliteAdapterException as errorSQL:
            return Render.jsonTemplate(
                _OPERATION,
                'Ajout Utilisateur Impossible : {}'.format(str(errorSQL)),
                categorie="ERROR")
        else:
            return Render.jsonTemplate(_OPERATION,
                                       'Ajout Utilisateur',
                                       categorie="SUCCESS")
    else:
        abort(400)
Example #2
0
def run():
    if request.method == 'POST':
        if BOT.active is True:
            BOT.stop()
            return Render.jsonTemplate(_OPERATION, 'Arret du Bot', categorie="SUCCESS", data=BOT.active)
        elif BOT.active is False:
            BOT.start()
            return Render.jsonTemplate(_OPERATION, 'Demarrage du Bot', categorie="SUCCESS", data=BOT.active)
        else:
            return Render.jsonTemplate(_OPERATION, '????', categorie="ERROR", data=BOT.active)
    else:
        abort(400)
Example #3
0
def updateParam():
    if request.method == 'POST':
        # Recuperation + traitement des données du formulaire
        data = Utils.parseForm(dict(request.form))
        # Initialisation de la Config
        config = Configuration.from_filepath()
        # Modification de la config
        if 'time_zone' in data:
            config.set_time_zone(data['time_zone'])
        if 'hour_start' in data:
            config.set_hour_start(data['hour_start'])
        if 'hour_end' in data:
            config.set_hour_end(data['hour_end'])
        if 'filepathCredentials' in data:
            config.set_filepathCredentials(data['filepathCredentials'])
        if 'use_demo_account' in data:
            config.set_use_demo_account(True if data['use_demo_account'] ==
                                        'true' else False)
        if 'spin_interval' in data:
            config.set_spin_interval(data['spin_interval'])
        # Envoi du message
        return Render.jsonTemplate(_OPERATION,
                                   'Enregistrement de la Configuration',
                                   categorie="SUCCESS")
    else:
        abort(400)
Example #4
0
 def exceptions(e):
     """
     logger = Logger()
     logger.pid = Session.getPid()
     logger.user = Session.getUserDisplay()
     # ----------------------------------------------------
     # Trace dans l'activité d'une erreur dans activity.log
     logger.error('{APP_NAME} à rencontré une erreur'.format(APP_NAME=cfg._APP_NAME))
     # ----------------------------------------------------
     # Trace de l'exception dans un fichier à part
     # import traceback
     # traceback.print_exc()
     logger.critical(
         nom=exc_type.__name__,
         message=str(exc_value),
         trace=exc_tb
     )
     """
     # Recuperation ERREUR et trace dans Activité
     exc_type, exc_value, exc_tb = sys.exc_info()
     # print(exc_value)
     # loggerAct.exception(e)
     # Renvoi Erreur
     if Utils.isAjaxRequest(request) is True:
         return Render.jsonTemplate(
             operation='OOPS !! Une erreur est arrivé',
             message='{MESSAGE}'.format(MESSAGE=exc_value),
             categorie="ERROR",
             code=500)
     return Render.htmlTemplate("errors/{}.html".format(str(500)),
                                data=None,
                                code=500)
Example #5
0
 def unauthentified(error):
     if request.path.startswith("/api/"):
         return Render.jsonTemplate(operation='Utilisateur deconnecté',
                                    message='Acces refusé par le serveur',
                                    categorie="ERROR",
                                    code=error.code)
     return Render.htmlTemplate("errors/{}.html".format(error.code),
                                data=None,
                                code=error.code)
Example #6
0
 def bad_request(error):
     if request.path.startswith("/api/"):
         return Render.jsonTemplate(
             operation='Mauvaise Requete',
             message="La requête n'a pas pu être comprise par le serveur",
             categorie="ERROR",
             code=error.code)
     return Render.htmlTemplate("errors/{}.html".format(error.code),
                                data=None,
                                code=error.code)
Example #7
0
 def unauthorised(error):
     if request.path.startswith("/api/"):
         return Render.jsonTemplate(
             operation='Accés Interdit',
             message='Accés interdit à cette fonctionnalité',
             categorie="ERROR",
             code=error.code)
     return Render.htmlTemplate("errors/{}.html".format(error.code),
                                data=None,
                                code=error.code)
Example #8
0
 def incorrect_request(error):
     if request.path.startswith("/api/"):
         return Render.jsonTemplate(
             operation='OOPS !! Une erreur est arrivé',
             message='Methode Non Autorisé ou CSRF Incorrecte',
             categorie="ERROR",
             code=error.code)
     return Render.htmlTemplate("errors/{}.html".format(error.code),
                                data=None,
                                code=error.code)
Example #9
0
 def page_not_found_error(error):
     if request.path.startswith("/api/"):
         return Render.jsonTemplate(operation='Chemin inconnu',
                                    message="L'URL est inconnu : {}".format(
                                        request.path),
                                    categorie="ERROR",
                                    code=error.code)
     return Render.htmlTemplate("errors/{}.html".format(error.code),
                                data=None,
                                code=error.code)
Example #10
0
def getWatcherEntries():
    if request.method == 'POST':
        # Recuperation des infos
        data = LogWatcherModel().getAll()
        # Retour du message
        return Render.jsonTemplate(_OPERATION,
                                   'Observateur URL',
                                   categorie="SUCCESS",
                                   data=data.to_dict("Record"))
    else:
        abort(400)
Example #11
0
def getActivityEntries():
    """Parse un fichier de log dans un DataFrame"""
    if request.method == 'POST':
        # Recuperation des infos
        data = LogActivityModel().getAll()
        # Retour du message
        return Render.jsonTemplate(_OPERATION,
                                   'Activité',
                                   categorie="SUCCESS",
                                   data=data.to_dict("Record"))
    else:
        abort(400)
Example #12
0
def deleteUser():
    if request.method == 'POST':
        # Recuperation + traitement des données du formulaire
        data = Utils.parseForm(dict(request.form))
        # Decryptage id
        data["id"] = Crypt.decode(cfg._APP_SECRET_KEY, data["id"])
        mdl = AuthUsersModel(cfg._BDD_PATH)
        # Verification que la valeur username n'existe pas déjà
        try:
            mdl.deleteUser(data)
        except SqliteAdapterException as errorSQL:
            return Render.jsonTemplate(
                _OPERATION,
                'Suppression Utilisateur Impossible : {}'.format(
                    str(errorSQL)),
                categorie="ERROR")
        else:
            return Render.jsonTemplate(_OPERATION,
                                       'Suppression Utilisateur',
                                       categorie="SUCCESS")
    else:
        abort(400)
Example #13
0
def updateUser():
    if request.method == 'POST':
        # Recuperation + traitement des données du formulaire
        data = Utils.parseForm(dict(request.form))
        data["password"] = Crypt.encode(cfg._APP_SECRET_KEY, data["password"])
        data["id"] = Crypt.decode(cfg._APP_SECRET_KEY, data["id"])
        # Traitement en BDD
        mdl = AuthUsersModel(cfg._BDD_PATH)
        try:
            mdl.updateUser(data)
        except SqliteAdapterException as errorSQL:
            return Render.jsonTemplate(
                _OPERATION,
                'Modification Utilisateur Impossible : {}'.format(
                    str(errorSQL)),
                categorie="ERROR")
        else:
            return Render.jsonTemplate(_OPERATION,
                                       'Modification Utilisateur',
                                       categorie="SUCCESS")
    else:
        abort(400)
Example #14
0
def getActivityEntries():
    """Parse un fichier de log dans un DataFrame"""
    if request.method == 'POST':
        # Recuperation des infos
        entries = LogBotModel().getAll()
        data = {
            "entries": entries.to_dict("records"),
            'state': BOT.active
        }
        # Retour du message
        return Render.jsonTemplate(_OPERATION, 'Bot', categorie="SUCCESS", data=data)
    else:
        abort(400)
Example #15
0
def deblockUser():
    if request.method == 'POST':
        # Recuperation + traitement des données du formulaire
        data = Utils.parseForm(dict(request.form))
        # Decryptage id
        data["id"] = Crypt.decode(cfg._APP_SECRET_KEY, data["id"])
        # Recuperation utiisateur
        mdl = AuthUsersModel()
        user = mdl.getUserById(data["id"])
        # Execution du deblocage
        try:
            mdl.resetFailedLogins(user["username"])
        except SqliteAdapterException as errorSQL:
            return Render.jsonTemplate(
                _OPERATION,
                'Deblocage Utilisateur Impossible : {}'.format(str(errorSQL)),
                categorie="ERROR")
        else:
            return Render.jsonTemplate(_OPERATION,
                                       'Deblocage Utilisateur',
                                       categorie="SUCCESS")
    else:
        abort(400)
Example #16
0
def getParam():
    """Parse un fichier de log dans un DataFrame"""
    if request.method == 'POST':
        # Recuperation des infos
        data = Configuration.from_filepath().json()
        # Cryptage des id
        # df["id"] = df.apply(lambda x: Crypt.encode(cfg._APP_SECRET_KEY, x['id']), axis=1)
        # Retour du message
        return Render.jsonTemplate(_OPERATION,
                                   'Parametres',
                                   categorie="SUCCESS",
                                   data=data)
    else:
        abort(400)
Example #17
0
def updateById():
    if request.method == 'POST':
        # Recuperation + traitement des données du formulaire
        data = Utils.parseForm(dict(request.form))
        # Decryptage id
        data["id"] = Crypt.decode(cfg._APP_SECRET_KEY, data["id"])
        # Recuperation des infos
        MarketsModel().update(data)
        # Retour du message
        return Render.jsonTemplate(_OPERATION,
                                   'Changement du Statut',
                                   categorie="SUCCESS")
    else:
        abort(400)
Example #18
0
def getAll():
    """Parse un fichier de log dans un DataFrame"""
    if request.method == 'POST':
        # Recuperation des infos
        data = MarketsModel().getAll()
        # Cryptage des id
        data["id"] = data.apply(
            lambda x: Crypt.encode(cfg._APP_SECRET_KEY, x['id']), axis=1)
        # Retour du message
        return Render.jsonTemplate(_OPERATION,
                                   'Marchés',
                                   categorie="SUCCESS",
                                   data=data.to_dict("records"))
    else:
        abort(400)
Example #19
0
def getReport():
    """Parse un fichier de log dans un DataFrame"""
    if request.method == 'POST':
        # Recuperation + traitement des données du formulaire
        data = Utils.parseForm(dict(request.form))
        if 'period' not in data:
            raise AppException("Le parametre de Periode n'est pas disponible")
        if data['period'] not in ('DAILY', 'WEEKLY', 'MONTHLY', 'YEAR'):
            raise AppException("Le parametre de Periode n'est pas disponible")
        # Recuperation des Ordres
        orders = OrdersModel().getAll()
        # Init Dahboard
        dashObj = DashBoard(orders)
        dashObj.init(data['period'])

        # Creation du Dict de données du DashBoard
        ret = {}
        # HEADER
        ret['period_detail'] = dashObj.period()
        ret['period_start_fmt'] = dashObj.start()
        ret['period_end_fmt'] = dashObj.end()
        ret['capital_today'] = 0
        ret['gp_total'] = dashObj.gp_total()
        ret['gp_lose'] = dashObj.gp_lose()
        ret['gp_wins'] = dashObj.gp_wins()
        # ret['gp_ratio_lose'] = dashObj.gp_ratio_lose(orders)
        # ret['gp_ratio_wins'] = dashObj.gp_ratio_wins(orders)
        ret['trade_total'] = dashObj.trade_total()
        ret['trade_lose'] = dashObj.trade_lose()
        ret['trade_wins'] = dashObj.trade_wins()
        ret['trade_ratio_lose'] = dashObj.trade_ratio_lose()
        ret['trade_ratio_wins'] = dashObj.trade_ratio_wins()
        ret['evaluation'] = dashObj.evalu()
        # [GRAPH] - Performance des Trades
        ret['PerfTradeDataGraph'] = dashObj.getPerfTradeByDay()
        ret['PerfGpDataGraph'] = dashObj.getPerfGpByDay()
        # Recuperation des infos
        # data = OrdersModel().getAll()
        # Retour du message
        del dashObj
        return Render.jsonTemplate(_OPERATION,
                                   'Données Dashboard',
                                   categorie="SUCCESS",
                                   data=ret,
                                   silent=True)
    else:
        abort(400)
Example #20
0
def getUsers():
    """Recuperation des Utilisateurs"""
    if request.method == 'POST':
        # Recuperation des infos
        df = AuthUsersModel().getAllUsers()
        # Decryptage des mots des passe
        df["password"] = df.apply(
            lambda x: Crypt.decode(cfg._APP_SECRET_KEY, x['password']), axis=1)
        # Cryptage des id
        df["id"] = df.apply(
            lambda x: Crypt.encode(cfg._APP_SECRET_KEY, x['id']), axis=1)
        # Renvoi de la reponse JSON
        return Render.jsonTemplate(_OPERATION,
                                   'Liste des Utilisateurs',
                                   categorie="SUCCESS",
                                   data=df.to_dict('Records'))
    else:
        abort(400)
Example #21
0
def getMarketById():
    if request.method == 'POST':
        # Recuperation + traitement des données du formulaire
        data = Utils.parseForm(dict(request.form))
        # Decryptage id
        idDecrypt = Crypt.decode(cfg._APP_SECRET_KEY, data["id"])
        # Recuperation des infos
        df = MarketsModel().getMarketById(idDecrypt)
        data = {}
        data["info"] = {}
        data["info"] = df.to_dict("Records")
        # Retour du message
        return Render.jsonTemplate(_OPERATION,
                                   'Marchés',
                                   categorie="SUCCESS",
                                   data=data)
    else:
        abort(400)
Example #22
0
def testJSON():
    Session.setPid()
    # raise AppException("TESSTTTTT ERRORS.LOG")
    return Render.jsonTemplate('TITRE', 'WOOHOO', categorie="INFO", code=200)
Example #23
0
def getState():
    if request.method == 'POST':
        return Render.jsonTemplate(_OPERATION, 'Statut du Bot', categorie="SUCCESS", data=BOT.active, silent=True)
    else:
        abort(400)