from flask import Blueprint, request, jsonify from model.user import User from db.repositories.user_repository import UserRepository # FIXME: authenticate_user as get_user from utils.token import generateKey as getToken auth = Blueprint("auth", __name__) @auth.route('/login', methods = ['POST']) def login(): if request.is_json: req = request.json 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 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}}) else: return "Request is not a json", 400