|
| 1 | +from flask import Blueprint, abort, render_template, request, redirect, url_for, session, flash |
| 2 | +from werkzeug.security import generate_password_hash,check_password_hash |
| 3 | +from extensions import mongo |
| 4 | + |
| 5 | +handler_bp = Blueprint('handler', __name__) |
| 6 | + |
| 7 | +@handler_bp.route("/user/registration", methods=["GET", "POST"]) |
| 8 | +def handle_registration(): |
| 9 | + token= request.headers.get('X-Internal-Request') |
| 10 | + if token != 'True': |
| 11 | + return redirect(url_for("index.index")) |
| 12 | + data= request.get_json() |
| 13 | + name= data.get("name", "") |
| 14 | + email= data.get("email", "") |
| 15 | + password= data.get("password", "") |
| 16 | + |
| 17 | + if mongo.db.user.find_one({"email": email}): |
| 18 | + return {"message": ["Email already registered"]}, 400 |
| 19 | + mongo.db.user.insert_one({ |
| 20 | + "name": name, |
| 21 | + "email": email, |
| 22 | + "password": generate_password_hash(password) |
| 23 | + }) |
| 24 | + return {"message": ["User registered successfully"]}, 200 |
| 25 | + |
| 26 | +@handler_bp.route("/user/login", methods=["GET", "POST"]) |
| 27 | +def handle_login(): |
| 28 | + token= request.headers.get('X-Internal-Request') |
| 29 | + if token != 'True': |
| 30 | + return redirect(url_for("index.index")) |
| 31 | + data= request.get_json() |
| 32 | + email= data.get("email", "") |
| 33 | + password= data.get("password", "") |
| 34 | + |
| 35 | + user= mongo.db.user.find_one({"email": email}) |
| 36 | + |
| 37 | + if user and check_password_hash(user["password"], password): |
| 38 | + return {"message": [True]}, 200 |
| 39 | + |
| 40 | + return {"message": ["Invalid credentials"]}, 401 |
| 41 | + |
| 42 | + |
0 commit comments