Skip to content

Commit 7f6c4ad

Browse files
authored
Fix return schema of the config api (#551)
1 parent 2be12b4 commit 7f6c4ad

File tree

3 files changed

+10
-9
lines changed

3 files changed

+10
-9
lines changed

backend/app/admin/api/v1/sys/config.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323

2424
@router.get('/website', summary='获取网站配置信息', dependencies=[DependsJwtAuth])
25-
async def get_website_config() -> ResponseSchemaModel[GetConfigDetail]:
25+
async def get_website_config() -> ResponseSchemaModel[list[GetConfigDetail]]:
2626
config = await config_service.get_built_in_config('website')
2727
return response_base.success(data=config)
2828

@@ -41,7 +41,7 @@ async def save_website_config(objs: list[SaveBuiltInConfigParam]) -> ResponseMod
4141

4242

4343
@router.get('/protocol', summary='获取用户协议', dependencies=[DependsJwtAuth])
44-
async def get_protocol_config() -> ResponseSchemaModel[GetConfigDetail]:
44+
async def get_protocol_config() -> ResponseSchemaModel[list[GetConfigDetail]]:
4545
config = await config_service.get_built_in_config('protocol')
4646
return response_base.success(data=config)
4747

@@ -60,7 +60,7 @@ async def save_protocol_config(objs: list[SaveBuiltInConfigParam]) -> ResponseMo
6060

6161

6262
@router.get('/policy', summary='获取用户政策', dependencies=[DependsJwtAuth])
63-
async def get_policy_config() -> ResponseSchemaModel[GetConfigDetail]:
63+
async def get_policy_config() -> ResponseSchemaModel[list[GetConfigDetail]]:
6464
config = await config_service.get_built_in_config('policy')
6565
return response_base.success(data=config)
6666

backend/app/admin/crud/crud_config.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ async def get_by_key_and_type(self, db: AsyncSession, key: str, type: str) -> Co
4343
"""
4444
return await self.select_model_by_column(db, key=key, type=type)
4545

46-
async def get_by_key(self, db: AsyncSession, key: str, built_in: bool = False) -> Config | None:
46+
async def get_by_key(self, db: AsyncSession, key: str) -> Config | None:
4747
"""
4848
通过 key 获取系统配置参数
4949
@@ -52,10 +52,7 @@ async def get_by_key(self, db: AsyncSession, key: str, built_in: bool = False) -
5252
:param built_in:
5353
:return:
5454
"""
55-
filters = {'key': key}
56-
if not built_in:
57-
filters.update({'type__not_in': admin_settings.CONFIG_BUILT_IN_TYPES})
58-
return await self.select_model_by_column(db, **filters)
55+
return await self.select_model_by_column(db, key=key)
5956

6057
async def get_list(self, name: str = None, type: str = None) -> Select:
6158
"""

backend/app/admin/service/config_service.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ async def save_built_in_config(objs: list[SaveBuiltInConfigParam], type: str) ->
2828
for obj in objs:
2929
config = await config_dao.get_by_key_and_type(db, obj.key, type)
3030
if config is None:
31-
if await config_dao.get_by_key(db, obj.key, built_in=True):
31+
if await config_dao.get_by_key(db, obj.key):
3232
raise errors.ForbiddenError(msg=f'参数配置 {obj.key} 已存在')
3333
await config_dao.create_model(db, obj, flush=True, type=type)
3434
else:
@@ -62,6 +62,10 @@ async def update(*, pk: int, obj: UpdateConfigParam) -> int:
6262
config = await config_dao.get(db, pk)
6363
if not config:
6464
raise errors.NotFoundError(msg='参数配置不存在')
65+
if config.key != obj.key:
66+
config = await config_dao.get_by_key(db, obj.key)
67+
if config:
68+
raise errors.ForbiddenError(msg=f'参数配置 {obj.key} 已存在')
6569
count = await config_dao.update(db, pk, obj)
6670
return count
6771

0 commit comments

Comments
 (0)