Commit
·
367f6bc
1
Parent(s):
36b9967
Refactor user registration (#1970)
Browse files### What problem does this PR solve?
1. Refactor error message
2. Update function name
### Type of change
- [x] Refactoring
Signed-off-by: Jin Hai <[email protected]>
- api/apps/user_app.py +13 -9
- api/utils/api_utils.py +1 -1
api/apps/user_app.py
CHANGED
@@ -32,7 +32,7 @@ from api.settings import RetCode, GITHUB_OAUTH, FEISHU_OAUTH, CHAT_MDL, EMBEDDIN
|
|
32 |
from api.db.services.user_service import UserService, TenantService, UserTenantService
|
33 |
from api.db.services.file_service import FileService
|
34 |
from api.settings import stat_logger
|
35 |
-
from api.utils.api_utils import get_json_result,
|
36 |
|
37 |
|
38 |
@manager.route('/login', methods=['POST', 'GET'])
|
@@ -64,7 +64,7 @@ def login():
|
|
64 |
user.update_date = datetime_format(datetime.now()),
|
65 |
user.save()
|
66 |
msg = "Welcome back!"
|
67 |
-
return
|
68 |
else:
|
69 |
return get_json_result(data=False, retcode=RetCode.AUTHENTICATION_ERROR,
|
70 |
retmsg='Email and Password do not match!')
|
@@ -347,10 +347,12 @@ def user_add():
|
|
347 |
retmsg=f'Email: {email_address} has already registered!',
|
348 |
retcode=RetCode.OPERATING_ERROR)
|
349 |
|
|
|
|
|
350 |
user_dict = {
|
351 |
"access_token": get_uuid(),
|
352 |
"email": email_address,
|
353 |
-
"nickname":
|
354 |
"password": decrypt(req["password"]),
|
355 |
"login_channel": "password",
|
356 |
"last_login_time": get_format_time(),
|
@@ -361,18 +363,20 @@ def user_add():
|
|
361 |
try:
|
362 |
users = user_register(user_id, user_dict)
|
363 |
if not users:
|
364 |
-
raise Exception('
|
365 |
if len(users) > 1:
|
366 |
-
raise Exception('Same E-mail
|
367 |
user = users[0]
|
368 |
login_user(user)
|
369 |
-
return
|
370 |
-
|
|
|
371 |
except Exception as e:
|
372 |
rollback_user_registration(user_id)
|
373 |
stat_logger.exception(e)
|
374 |
-
return get_json_result(
|
375 |
-
|
|
|
376 |
|
377 |
|
378 |
@manager.route("/tenant_info", methods=["GET"])
|
|
|
32 |
from api.db.services.user_service import UserService, TenantService, UserTenantService
|
33 |
from api.db.services.file_service import FileService
|
34 |
from api.settings import stat_logger
|
35 |
+
from api.utils.api_utils import get_json_result, construct_response
|
36 |
|
37 |
|
38 |
@manager.route('/login', methods=['POST', 'GET'])
|
|
|
64 |
user.update_date = datetime_format(datetime.now()),
|
65 |
user.save()
|
66 |
msg = "Welcome back!"
|
67 |
+
return construct_response(data=response_data, auth=user.get_id(), retmsg=msg)
|
68 |
else:
|
69 |
return get_json_result(data=False, retcode=RetCode.AUTHENTICATION_ERROR,
|
70 |
retmsg='Email and Password do not match!')
|
|
|
347 |
retmsg=f'Email: {email_address} has already registered!',
|
348 |
retcode=RetCode.OPERATING_ERROR)
|
349 |
|
350 |
+
# Construct user info data
|
351 |
+
nickname = req["nickname"]
|
352 |
user_dict = {
|
353 |
"access_token": get_uuid(),
|
354 |
"email": email_address,
|
355 |
+
"nickname": nickname,
|
356 |
"password": decrypt(req["password"]),
|
357 |
"login_channel": "password",
|
358 |
"last_login_time": get_format_time(),
|
|
|
363 |
try:
|
364 |
users = user_register(user_id, user_dict)
|
365 |
if not users:
|
366 |
+
raise Exception(f'Fail to register {email_address}.')
|
367 |
if len(users) > 1:
|
368 |
+
raise Exception(f'Same E-mail: {email_address} exists!')
|
369 |
user = users[0]
|
370 |
login_user(user)
|
371 |
+
return construct_response(data=user.to_json(),
|
372 |
+
auth=user.get_id(),
|
373 |
+
retmsg=f"{nickname}, welcome aboard!")
|
374 |
except Exception as e:
|
375 |
rollback_user_registration(user_id)
|
376 |
stat_logger.exception(e)
|
377 |
+
return get_json_result(data=False,
|
378 |
+
retmsg=f'User registration failure, error: {str(e)}',
|
379 |
+
retcode=RetCode.EXCEPTION_ERROR)
|
380 |
|
381 |
|
382 |
@manager.route("/tenant_info", methods=["GET"])
|
api/utils/api_utils.py
CHANGED
@@ -216,7 +216,7 @@ def get_json_result(retcode=RetCode.SUCCESS, retmsg='success', data=None):
|
|
216 |
return jsonify(response)
|
217 |
|
218 |
|
219 |
-
def
|
220 |
retmsg='success', data=None, auth=None):
|
221 |
result_dict = {"retcode": retcode, "retmsg": retmsg, "data": data}
|
222 |
response_dict = {}
|
|
|
216 |
return jsonify(response)
|
217 |
|
218 |
|
219 |
+
def construct_response(retcode=RetCode.SUCCESS,
|
220 |
retmsg='success', data=None, auth=None):
|
221 |
result_dict = {"retcode": retcode, "retmsg": retmsg, "data": data}
|
222 |
response_dict = {}
|