diff --git a/pkg/api/http/controller/groups/settings.py b/pkg/api/http/controller/groups/settings.py index b08fb525..9d8727be 100644 --- a/pkg/api/http/controller/groups/settings.py +++ b/pkg/api/http/controller/groups/settings.py @@ -28,6 +28,9 @@ class SettingsRouterGroup(group.RouterGroup): manager = self.ap.settings_mgr.get_manager(manager_name) + if manager is None: + return self.fail(1, '配置管理器不存在') + return self.success( data={ "manager": { @@ -44,6 +47,10 @@ class SettingsRouterGroup(group.RouterGroup): async def _(manager_name: str) -> str: data = await quart.request.json manager = self.ap.settings_mgr.get_manager(manager_name) + + if manager is None: + return self.fail(code=1, msg='配置管理器不存在') + # manager.data = data['data'] for k, v in data['data'].items(): manager.data[k] = v diff --git a/pkg/config/settings.py b/pkg/config/settings.py index 9d1a0cbc..5265c6e5 100644 --- a/pkg/config/settings.py +++ b/pkg/config/settings.py @@ -46,7 +46,7 @@ class SettingsManager: manager.schema = schema self.managers.append(manager) - def get_manager(self, name: str) -> config_manager.ConfigManager: + def get_manager(self, name: str) -> config_manager.ConfigManager | None: """获取配置管理器 Args: @@ -60,7 +60,7 @@ class SettingsManager: if m.name == name: return m - raise ValueError(f'配置管理器 {name} 不存在') + return None def get_manager_list(self) -> list[config_manager.ConfigManager]: """获取配置管理器列表 diff --git a/web/src/App.vue b/web/src/App.vue index 9b86a7e5..54763a00 100644 --- a/web/src/App.vue +++ b/web/src/App.vue @@ -1,5 +1,8 @@