Skip to content

Commit 41b79b7

Browse files
committed
feat:新增系统接口模块
fix:修复log装饰器当请求数据为表单类型获取请求参数异常的bug,修复增加自定义登录异常后登录异常日志不记录的bug
1 parent 8af0980 commit 41b79b7

File tree

4 files changed

+36
-10
lines changed

4 files changed

+36
-10
lines changed

dash-fastapi-backend/app.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,6 @@ async def auth_exception_handler(request: Request, exc: AuthException):
7171
return response_401(data=exc.data, message=exc.message)
7272

7373

74-
# 自定义登录检验异常
75-
@app.exception_handler(LoginException)
76-
async def login_exception_handler(request: Request, exc: LoginException):
77-
return response_400(data=exc.data, message=exc.message)
78-
79-
8074
@app.exception_handler(HTTPException)
8175
async def http_exception_handler(request: Request, exc: HTTPException):
8276
return JSONResponse(

dash-fastapi-backend/module_admin/annotation/log_annotation.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,13 @@ async def wrapper(*args, **kwargs):
6464
oper_location = '未知'
6565
print(e)
6666
finally:
67-
payload = await request.body()
68-
oper_param = json.dumps(json.loads(str(payload, 'utf-8')), ensure_ascii=False)
67+
content_type = request.headers.get("Content-Type")
68+
if content_type and "multipart/form-data" in content_type:
69+
payload = await request.form()
70+
oper_param = "\n".join([f"{key}: {value}" for key, value in payload.items()])
71+
else:
72+
payload = await request.body()
73+
oper_param = json.dumps(json.loads(str(payload, 'utf-8')), ensure_ascii=False)
6974
if len(oper_param) > 2000:
7075
oper_param = '请求参数过长'
7176

dash-fastapi-backend/module_admin/controller/login_controller.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@
1717
@loginController.post("/loginByAccount", response_model=Token)
1818
@log_decorator(title='用户登录', business_type=0, log_type='login')
1919
async def login(request: Request, user: UserLogin, query_db: Session = Depends(get_db)):
20-
result = await authenticate_user(request, query_db, user)
20+
try:
21+
result = await authenticate_user(request, query_db, user)
22+
except LoginException as e:
23+
return response_400(data="", message=e.message)
2124
try:
2225
access_token_expires = timedelta(minutes=JwtConfig.ACCESS_TOKEN_EXPIRE_MINUTES)
2326
session_id = str(uuid.uuid4())
Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,32 @@
11
from dash import html
22
import feffery_utils_components as fuc
33
import feffery_antd_components as fac
4+
from config.global_config import ApiBaseUrlConfig
45

56

67
def render(button_perms):
78

8-
return html.Div('我是系统接口')
9+
return [
10+
html.Div(
11+
[
12+
fuc.FefferyStyle(
13+
rawStyle="""
14+
iframe {
15+
border: none;
16+
width: 100%;
17+
height: 100%;
18+
display: block
19+
}
20+
"""
21+
),
22+
html.Iframe(
23+
src=f'{ApiBaseUrlConfig.BaseUrl}/docs'
24+
)
25+
],
26+
id='swagger-docs-container',
27+
style={
28+
'position': 'relative',
29+
'height': 'calc(100vh - 120px)'
30+
}
31+
)
32+
]

0 commit comments

Comments
 (0)