guarantee-admin-api-v0.2/Modules/AdminUser/UserRoutes.py

77 lines
2.0 KiB
Python
Raw Normal View History

2022-05-24 02:25:59 +08:00
from flask import Blueprint, request
2022-05-25 15:45:31 +08:00
from Modules.AdminUser.UserImpl1 import UserImpl, EmailVcodeCheckerImpl
2022-05-25 14:41:58 +08:00
from Modules.AdminUser.UserUtils1 import UserUtils
from Utils.ErrorUtil import ReturnConditionCheckFailed, AttrCheckError
from Modules.AdminUser.UserImpl import UserLoginImpl, SendLoginVcodeEmailImpl
2022-05-24 02:25:59 +08:00
from Modules.AdminUser.UserAuthUtils import verify_token, authority_scope
user_route = Blueprint('user', __name__)
@user_route.route('/online_check', methods=['GET'])
@verify_token
def online_check_route(**kwargs):
"""
在线检查检查token是否有效
"""
return {"info": "正常"}, 200
@user_route.route('/create', methods=['POST'])
2022-05-25 15:45:31 +08:00
@verify_token
@authority_scope(['admin'])
2022-05-24 02:25:59 +08:00
def create_user_route(**kwargs):
"""新建用户"""
try:
req = request.json
2022-05-25 14:41:58 +08:00
impl = UserImpl()
2022-05-24 02:25:59 +08:00
2022-05-25 14:41:58 +08:00
impl.create(
req['email'],
req['name'],
UserUtils.decrypt_data(encrypt_msg=req['pwd']),
req['role']
2022-05-24 02:25:59 +08:00
)
2022-05-25 14:41:58 +08:00
return {"info": "用户创建成功"}, 200
except AssertionError as e:
return {"info": e.__str__()}, 202
except AttrCheckError as e:
return {"info": e.__str__()}, 202
2022-05-24 02:25:59 +08:00
@user_route.route('/login', methods=['POST'])
def login_route():
"""登录"""
try:
req = request.json
2022-05-25 15:45:31 +08:00
impl = UserImpl()
result = impl.login(
req['email'],
req['pwd'],
req['vcode']
)
2022-05-24 02:25:59 +08:00
return {"info": "登录成功", "result": result}, 200
2022-05-25 15:45:31 +08:00
except AssertionError as e:
return {"info": e.__str__()}, 202
except AttrCheckError as e:
return {"info": e.__str__()}, 202
2022-05-24 02:25:59 +08:00
@user_route.route('/send_vcode', methods=['POST'])
def send_vcode_to_user_route():
"""发送验证码"""
try:
req = request.json
2022-05-25 15:45:31 +08:00
obj = EmailVcodeCheckerImpl()
2022-05-24 02:25:59 +08:00
obj.email = req['email']
obj.send_vcode_email()
return {"info": "发送成功"}, 200
except ReturnConditionCheckFailed as e:
e.log_error()
return {"info": e.__str__()}, e.status_code