from flask import (
    Blueprint, flash, redirect, render_template, request, session, url_for
)


from Uploadr.db import register_user,login_user

bp = Blueprint('auth', __name__, url_prefix='/auth')

@bp.route('/register', methods=('GET', 'POST'))
def register():
    if not (session and session['user_id']):
        if request.method == 'POST':
            username = request.form['username']
            password = request.form['password']
            passconf = request.form['passconf']

            error = None

            if not username:
                error = 'Username is required.'
            elif not password:
                error = 'Password is required.'
            elif password != passconf:
                error = 'Passwords do not match.'

            if error is None:
                error = register_user(username, password)
                if error is None :
                    return redirect(url_for("auth.login"))

            flash(error)

        return render_template('auth/register.html')
    
    return redirect(url_for('index'))

@bp.route('/login', methods=('GET', 'POST'))
def login():
    if not (session and session['user_id']):    
        if request.method == 'POST':
            username = request.form['username']
            password = request.form['password']

            error = login_user(username,password)

            if error is None:
                return redirect(url_for('index'))

            flash(error)

        return render_template('auth/login.html')
    
    return redirect(url_for('index'))

@bp.route('/logout')
def logout():
    session.clear()
    return redirect(url_for('index'))



