Create user , user login register routes and pages
This commit is contained in:
@@ -1,31 +1,45 @@
|
||||
from flask import Blueprint, request, render_template, redirect, flash, session
|
||||
from app.services.user_service import UserService
|
||||
from flask import Blueprint, render_template, request, redirect, url_for, flash, session
|
||||
from app.services.user_service import UserService
|
||||
|
||||
auth_bp = Blueprint("auth", __name__, url_prefix="/auth")
|
||||
auth_bp = Blueprint("auth", __name__)
|
||||
|
||||
# LOGIN PAGE
|
||||
@auth_bp.route("/", methods=["GET", "POST"])
|
||||
@auth_bp.route("/login", methods=["GET", "POST"])
|
||||
def login():
|
||||
if request.method == "POST":
|
||||
user = UserService.validate_login(
|
||||
request.form["email"],
|
||||
request.form["password"]
|
||||
)
|
||||
email = request.form.get("email")
|
||||
password = request.form.get("password")
|
||||
|
||||
user = UserService.validate_login(email, password)
|
||||
if user:
|
||||
session["user_id"] = user.id
|
||||
return redirect("/dashboard")
|
||||
flash("Invalid credentials", "danger")
|
||||
return render_template("login.html")
|
||||
session["user_name"] = user.name
|
||||
flash("Login successful", "success")
|
||||
return redirect(url_for("dashboard.dashboard"))
|
||||
|
||||
# REGISTER API ONLY
|
||||
@auth_bp.route("/register", methods=["POST"])
|
||||
def register():
|
||||
data = request.json
|
||||
UserService.register_user(data["name"], data["email"], data["password"])
|
||||
return {"message": "User registered successfully"}, 201
|
||||
flash("Invalid email or password", "danger")
|
||||
|
||||
return render_template("login.html", title="Login")
|
||||
|
||||
# LOGOUT
|
||||
@auth_bp.route("/logout")
|
||||
def logout():
|
||||
session.clear()
|
||||
return redirect("/auth/login")
|
||||
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")
|
||||
|
||||
Reference in New Issue
Block a user