from datetime import datetime
from flask import Blueprint, flash, render_template, request
import flask_login
from flask_login import current_user
from goathacks.registration.forms import LoginForm, RegisterForm
from werkzeug.security import generate_password_hash

from goathacks import db
from goathacks.models import User

bp = Blueprint('registration', __name__, url_prefix="/registration")

@bp.route("/")
def register():
    if current_user.is_authenticated:
        flash("You are already registered and logged in!")

    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
        email = request.form.get('email')
        first_name = request.form.get('first_name')
        last_name = request.form.get('last_name')
        password = request.form.get('password')
        password_c = request.form.get('password_confirm')


        if password == password_c:
            # Passwords match!
            user = User(
                    email=email,
                    password=generate_password_hash(password),
                    first_name=first_name,
                    last_name=last_name,
                    last_login=datetime.now(),
            )

            db.session.add(user)
            db.session.commit()
            flask_login.login_user(user)

            return "OK"
        else:
            flash("Passwords do not match")

    return render_template("register.html", form=form)