Files

36 lines
1.0 KiB
Python
Raw Permalink Normal View History

from flask import Blueprint, request, jsonify
from model.user import User
2025-10-26 22:52:07 +03:00
from db.repositories.user_repository import UserRepository # FIXME: authenticate_user as get_user
from utils.token import generateKey as getToken
2025-10-25 11:24:31 +03:00
auth = Blueprint("auth", __name__)
2025-10-26 15:08:14 +03:00
@auth.route('/login', methods = ['POST'])
2025-10-25 11:24:31 +03:00
def login():
if request.is_json:
req = request.json
2025-10-26 15:08:14 +03:00
email = req.get('email')
password = req.get('password')
if not email or not password:
return "Request must have email and password", 400
if len(email.strip()) < 4 or '@' not in email or '.' not in email:
return "Email is incorrect", 400
if len(password.strip()) < 8:
return "Password is too short", 400
2025-10-26 22:52:07 +03:00
user = UserRepository().authenticate_user(email, password)
if not user:
return "Wrong credentials", 400
token = getToken(user)
return jsonify({'token': token, 'user': {'id': user.id, 'name': user.name, 'role': user.role}})
2025-10-26 15:08:14 +03:00
else:
2025-10-26 15:08:14 +03:00
return "Request is not a json", 400