from flask import Blueprint, render_template, request, redirect, url_for, flash, session from app.services.user_service import UserService auth_bp = Blueprint("auth", __name__) @auth_bp.route("/", methods=["GET", "POST"]) @auth_bp.route("/login", methods=["GET", "POST"]) def login(): if request.method == "POST": email = request.form.get("email") password = request.form.get("password") user = UserService.validate_login(email, password) if user: session["user_id"] = user.id session["user_name"] = user.name flash("Login successful", "success") return redirect(url_for("dashboard.dashboard")) flash("Invalid email or password", "danger") return render_template("login.html", title="Login") @auth_bp.route("/logout") def logout(): session.clear() flash("Logged out successfully", "info") return redirect(url_for("auth.login")) @auth_bp.route("/register", methods=["GET", "POST"]) def register(): if request.method == "POST": name = request.form.get("name") email = request.form.get("email") password = request.form.get("password") user = UserService.register_user(name, email, password) if not user: flash("Email already exists", "danger") return redirect(url_for("auth.register")) flash("User registered successfully", "success") return redirect(url_for("auth.login")) return render_template("register.html", title="Register")