async def update_config_detail(request): config_name = request.args['config_name'] env = request.args['env'] config_manager = request.config_manager if request.method == 'GET': config_project = config_manager.get_config_project(config_name) env_data = config_project.source_data.get(env) or {} history_data = config_project.source_data.get('history') or {} env_history_data = history_data.get(env) or {} data = list(env_data.values()) for i in data: i['history'] = env_history_data.get(i['key']) or [] return page_result(request, list(env_data.values())) key = request.json.get('key') if not (key and config_manager.validate_name(key)): raise GlobalApiException('配置项名称为空或有误') if request.method in ["POST", "PUT"]: value = request.json.get('value') desc = request.json.get('desc') if not value: raise GlobalApiException('配置值不能为空') if request.method == "POST" and config_manager.env_key_exist( config_name, env, key): raise GlobalApiException(f'配置项[{key}]已存在') await config_manager.add_env_config( request, config_name, env, { key: dict( key=key, desc=desc, value=value )} ) elif request.method == "DELETE": await config_manager.remove_env_config(config_name, env, [key]) return {'code': 0, "data": {}}
async def config_list(request): return page_result(request, request.config_manager.get_config_project_list())
async def api_config_client(request): config_name = request.args.get('config_name') return page_result(request, request.config_manager.get_connection_clients(config_name))
async def user_list(request): auth_manager = request.app.config['AUTH_MANAGER'] return page_result( request, [format_data(i) for i in auth_manager.get_all().values()])