Cleanup and documentation of user management code
This commit is contained in:
1 parent
63ef1179fc
commit
0202a40228
2 files changed
+188
-48
No files matched your search
@@ -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)
|
||||
Reference in new issue
Block a user