From af142173bb8fdbcf27436f6d1eaeb5365c27ef6a Mon Sep 17 00:00:00 2001 From: yumoqing Date: Mon, 29 Jun 2026 14:46:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20create=5Fapikey.dspy=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=87=8D=E5=A4=8Dkey=E8=BF=94=E5=9B=9E500=EF=BC=8C?= =?UTF-8?q?=E5=8A=A0try/except?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加重复的应用ID或名称时,sor.C()抛Duplicate异常未捕获, 导致500错误而非友好的提示信息。 修复: - 包裹主逻辑在try/except中 - Duplicate/1062错误: 返回'应用ID或名称已存在' - 其他错误: 返回具体错误信息 --- scripts/__pycache__/load_path.cpython-310.pyc | Bin 0 -> 1876 bytes wwwroot/create_apikey.dspy | 52 ++++++++++-------- 2 files changed, 30 insertions(+), 22 deletions(-) create mode 100644 scripts/__pycache__/load_path.cpython-310.pyc diff --git a/scripts/__pycache__/load_path.cpython-310.pyc b/scripts/__pycache__/load_path.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..64e929bfef500fa79eaf2a3bd34cabdce19b826e GIT binary patch literal 1876 zcmaJ?&2QX96rZuZUaz|eN%{e_fJ_xdF{->E5J(76+oUSFBvpchx+=1~o=GxW+vCi5 zlWw|;ik1^+P6ecd8-E89f5aT&)C2zj;_HpQn`BYKSTplx-{-tHzqfp5#zio`wcqUi zT1V(NeKCc_}Bo zgnD^Y?8?A(H+z}4EqLl}MLX0JoEP2!D|V~nKF#(&bUhd`@xE*cnseEbT5xH}3tD;q z-ByQXuot^L^MatIJ+x#jSYF6h!XpxDKSADiUqA-Yx@v6QxqmO*+}QZc$Ev=1_W|dL z1hTP1ixr-2vmH3Nt1K=yI$atUaH;`oZPlOkjl){$K-Ckz!!k^K;p+RO+#ykkkLupAtBAKQ>P&6;y;hNyU`+ zv3WuhdcOG^m4Cv+UQR9u;qpZ0AdB)`PC2+*@gRZc1wUVLyS+4L*_7Tmu#26JFE%YO zzIUuEJsG+V8e>1hl)u386)pe;BRoU}9-yu@2v_=r_l2bcA@$u7GqAR_p!J5RCD!VxTu^7efSN_;DHn#%L;x5y52G) zw@%b6DvMHDQAIzeeu+?x(*KP8DCtq@EiXQ0WVm>1%JJl+O`YXK!C)fpB!X_=y?EiRmD^)j~Cqid^W za>YDwPa@Y@g>X&L%gPL%Sza$M_fhqC@rkau^kA`&Q**F`o5n1jg|!K(YGTK97M$yI H*!t&R)-M*z literal 0 HcmV?d00001 diff --git a/wwwroot/create_apikey.dspy b/wwwroot/create_apikey.dspy index cb1cb49..23d2eef 100644 --- a/wwwroot/create_apikey.dspy +++ b/wwwroot/create_apikey.dspy @@ -20,26 +20,34 @@ kw = { ] } -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) +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')