debug(f'{params_kw=}') dbname = get_module_dbname('dapi') db = DBPools() kw = { "binds": [ { "wid": "self", "event": "dismissed", "actiontype": "script", "target": 'app.' + params_kw.data_widget, "script": "this.render()" }, { "wid": "self", "event": "dismissed", "actiontype": "script", "target": 'app.' + params_kw.referer_widget, "script": "this.dismiss()" } ] } try: async with db.sqlorContext(dbname) as sor: orgid = await get_userorgid() userid = await get_user() ns = { "id": params_kw.id, "name": params_kw.appname, "description": params_kw.description, "secretkey": password_encode(uuid()), "allowedips": params_kw.allowedips, "orgid": orgid } await sor.C('downapp', ns) ns1 = { "id": uuid(), "dappid": ns['id'], "userid": userid, "apikey": password_encode(uuid()), "enabled_date": curDateString(), "expired_date": '9999-12-31' } await sor.C('downapikey', ns1) return UiMessage(title="create apikey", message=f"apikey created", **kw) except Exception as e: err_msg = str(e) debug(f'create_apikey error: {format_exc()}') if 'Duplicate' in err_msg or '1062' in err_msg: return UiError(title='创建失败', message='应用ID或名称已存在,请使用不同的ID或名称') return UiError(title='创建失败', message=f'创建API Key失败: {err_msg}') return UiError(title='create apikey', message='add apikey error')