from flask import render_template, request, session, redirect, url_for, flash
from oxyapp import app
from oxyapp.database import login_verify
from oxyapp.utils import setRank


# Page login
@app.route("/login")
def login():
    return render_template("auth/login.html", title='Login')


# Formulaire de connexion - REVOIR LES SESSSIONS ET VARIABLES GLOBALES
@app.route("/form_login", methods=['POST'])
def form_login():
    # On récupere les données de POST
    POST_NAME = str(request.form['nom'])
    POST_PRENOM = str(request.form['prenom'])
    POST_PASSWORD = str(request.form['password'])
    # On vérifie que les identifiants sont corrects via fonction sous SQL verify()
    row = login_verify(POST_NAME, POST_PRENOM, POST_PASSWORD)
    # Si la connexion s'établie alors on envoie vers index avec les différentes données
    if row:
        # On set les variables de sessions
        session['logged_in'] = True
        session.permanent = True
        session['prenom'] = row[2]
        session['nom'] = row[1]
        session['ID'] = row[0]
        session['rank'] = setRank(row[4])
        # On affiche la template preloader
        return redirect(url_for('preloader'))
    # Si la connexion ne se fait pas alors on renvoit vers login avec une erreur
    else:
        flash('Identifiants incorrects', 'danger')
        return redirect(url_for('login'))


# Page de déconnexion - REVOIR VARIABLES GLOBALES
@app.route("/logout")
def logout():
    # Set logged_in to False pour fermer la session
    session['logged_in'] = False
    # Destruction des différentes valeurs sessions
    session.pop('prenom', None)
    session.pop('nom', None)
    session.pop('ID', None)
    session.pop('rank', None)
    # Retourne à la page login avec message
    flash('Vous avez été déconnecté', 'success')
    return redirect(url_for('login'))


# Page mot de passe oublié - A FAIRE A LA FIN
@app.route('/forgot-password')
def forgot_password():
    return render_template('auth/forgot-password.html', title='Mot de passe oublié')


# Page d'enregistrement compte - A FAIRE A LA FIN
@app.route('/register')
def register():
    return render_template('auth/register.html', title='Inscription')