Cleanup and documentation of user management code

This commit is contained in:
Thastertyn committed 2024-03-07 07:52:27 +01:00
1 parent 63ef1179fc
commit 0202a40228
2 files changed
+188 -48

No files matched your search

+61 -36
View File
@@ -1,10 +1,21 @@
from app.api import bp_user
from flask_jwt_extended import jwt_required, get_jwt_identity, get_jwt
from flask import request, abort, jsonify
from datetime import timedelta
from flask import request, abort
from app.services.user_service import UserService
from app.extensions import jwt_redis_blocklist
@bp_user.route('/register', methods=['POST'])
def register():
username = request.json.get('username')
email = request.json.get('email')
password = request.json.get('password')
if username is None or email is None or password is None:
return abort(400)
result, status_code = UserService.register(username, email, password)
return result, status_code
@bp_user.route('/login', methods=['POST'])
def login():
@@ -16,43 +27,20 @@ def login():
result, status_code = UserService.login(username, password)
return jsonify(**result), status_code
return result, status_code
@bp_user.route('/logout', methods=['DELETE'])
@jwt_required()
def logout():
jti = get_jwt()["jti"]
jwt_redis_blocklist.set(jti, "", ex=timedelta(days=1))
jwt = get_jwt()
return {"Success": "Successfully logged out"}, 200
jti = jwt['jti']
exp = jwt['exp']
result, status_code = UserService.logout(jti, exp)
@bp_user.route('/create', methods=['POST'])
def create_user():
username = request.json.get('username')
email = request.json.get('email')
password = request.json.get('password')
return result, status_code
if username is None or email is None or password is None:
return abort(400)
result, status_code = UserService.create_user(username, email, password)
return jsonify(**result), status_code
@bp_user.route('/update/email', methods=['POST'])
@jwt_required()
def update_email():
username = get_jwt_identity()
new_mail = request.json.get('new_email')
if new_mail is None:
return abort(400)
result, status_code = UserService.update_email(username, new_mail)
return jsonify(**result), status_code
@bp_user.route('/update/username', methods=['POST'])
@bp_user.route('/update/username', methods=['PUT'])
@jwt_required()
def update_username():
username = get_jwt_identity()
@@ -63,9 +51,35 @@ def update_username():
result, status_code = UserService.update_username(username, new_username)
return jsonify(**result), status_code
jwt = get_jwt()
jti = jwt['jti']
exp = jwt['exp']
UserService.logout(jti, exp)
@bp_user.route('/update/password', methods=['POST'])
return result, status_code
@bp_user.route('/update/email', methods=['PUT'])
@jwt_required()
def update_email():
username = get_jwt_identity()
new_mail = request.json.get('new_email')
if new_mail is None:
return abort(400)
result, status_code = UserService.update_email(username, new_mail)
jwt = get_jwt()
jti = jwt['jti']
exp = jwt['exp']
UserService.logout(jti, exp)
return result, status_code
@bp_user.route('/update/password', methods=['PUT'])
@jwt_required()
def update_password():
username = get_jwt_identity()
@@ -76,4 +90,15 @@ def update_password():
result, status_code = UserService.update_password(username, new_password)
return jsonify(**result), status_code
jwt = get_jwt()
jti = jwt['jti']
exp = jwt['exp']
UserService.logout(jti, exp)
return result, status_code
@bp_user.route('/delete', methods=['DELETE'])
@jwt_required()
def delete_user():
return abort(501)