fix(errors): unify backend error protocol and preserve db detail
This commit is contained in:
1 parent
f1617bbd87
commit
c8c40ba839
24 files changed
+1197
-182
No files matched your search
@@ -156,7 +156,7 @@ async function save() {
|
||||
await store.saveProfiles(cloneProfiles(draft.value));
|
||||
toast(t("settings.tunnelsSaved"));
|
||||
} catch (error) {
|
||||
toast(t("settings.tunnelsSaveFailed", { message: translateBackendError(t, String(error)) }), 5000);
|
||||
toast(t("settings.tunnelsSaveFailed", { message: translateBackendError(t, error) }), 5000);
|
||||
} finally {
|
||||
isSaving.value = false;
|
||||
}
|
||||
@@ -175,7 +175,7 @@ async function testSelected() {
|
||||
testResult.value = { ok: true, message: message ? t("settings.tunnelsTestSuccess") + ": " + message : t("settings.tunnelsTestSuccess") };
|
||||
} catch (error) {
|
||||
if (!testGuard.isCurrent(requestId, profile)) return;
|
||||
testResult.value = { ok: false, message: t("settings.tunnelsTestFailed", { message: translateBackendError(t, String(error)) }) };
|
||||
testResult.value = { ok: false, message: t("settings.tunnelsTestFailed", { message: translateBackendError(t, error) }) };
|
||||
} finally {
|
||||
if (testGuard.isCurrent(requestId, selectedSsh.value || selectedProxy.value)) isTesting.value = false;
|
||||
}
|
||||
|
||||
@@ -3008,7 +3008,7 @@ async function aiTestConn() {
|
||||
aiTestResult.value = "success";
|
||||
} catch (e: any) {
|
||||
aiTestResult.value = "error";
|
||||
aiTestError.value = translateBackendError(t, e?.message || String(e));
|
||||
aiTestError.value = translateBackendError(t, e);
|
||||
} finally {
|
||||
aiTesting.value = false;
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ async function refreshTree() {
|
||||
try {
|
||||
await connectionStore.refreshAllTree();
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -148,7 +148,7 @@ async function loadTopics(force = false) {
|
||||
try {
|
||||
await topicSelectRef.value?.loadTopics();
|
||||
} catch (e: unknown) {
|
||||
error.value = translateBackendError(t, formatError(e));
|
||||
error.value = translateBackendError(t, e);
|
||||
} finally {
|
||||
topicsLoading.value = false;
|
||||
}
|
||||
@@ -261,7 +261,7 @@ async function loadRuntimeClients() {
|
||||
}
|
||||
} catch (e: unknown) {
|
||||
if (isRuntimeLoadCurrent(loadSeq, currentKey)) {
|
||||
error.value = translateBackendError(t, formatError(e)) || String(e);
|
||||
error.value = translateBackendError(t, e);
|
||||
}
|
||||
} finally {
|
||||
if (loadSeq === runtimeLoadSeq) {
|
||||
|
||||
@@ -77,7 +77,7 @@ async function loadData() {
|
||||
throw firstError;
|
||||
}
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
@@ -100,7 +100,7 @@ async function installExtension(name: string) {
|
||||
await loadData();
|
||||
emit("changed");
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
} finally {
|
||||
installing.value = null;
|
||||
}
|
||||
@@ -122,7 +122,7 @@ async function dropExtension(name: string) {
|
||||
await loadData();
|
||||
emit("changed");
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
} finally {
|
||||
dropping.value = null;
|
||||
}
|
||||
|
||||
@@ -2136,7 +2136,7 @@ async function confirmPasteTable() {
|
||||
await connectionStore.refreshObjectListTreeNode(props.connection.id, props.database, selectedSchema.value);
|
||||
toast(t("contextMenu.pasteTableCancelledAfterPartial"), 5000);
|
||||
} catch (e: any) {
|
||||
toast(t("contextMenu.pasteTableRefreshFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("contextMenu.pasteTableRefreshFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
||||
@@ -779,7 +779,7 @@ async function loadMoreObjectGroupChildren() {
|
||||
try {
|
||||
await connectionStore.loadMoreObjectGroupChildren(node);
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -788,7 +788,7 @@ async function loadAllObjectGroupChildren() {
|
||||
try {
|
||||
await connectionStore.loadAllObjectGroupChildren(node);
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1150,7 +1150,7 @@ async function openObjectBrowser() {
|
||||
await toggle();
|
||||
}
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
openDriverStoreForInstallError(e?.message || String(e));
|
||||
}
|
||||
}
|
||||
@@ -1163,7 +1163,7 @@ async function openUserAdmin() {
|
||||
connectionStore.activeConnectionId = node.connectionId;
|
||||
queryStore.openUserAdmin(node.connectionId);
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1175,7 +1175,7 @@ async function openProcessList() {
|
||||
connectionStore.activeConnectionId = node.connectionId;
|
||||
queryStore.openProcessList(node.connectionId);
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1193,7 +1193,7 @@ async function openServerDashboard() {
|
||||
queryStore.openMysqlDashboard(node.connectionId);
|
||||
}
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1205,7 +1205,7 @@ async function openDamengJobAdmin() {
|
||||
connectionStore.activeConnectionId = node.connectionId;
|
||||
queryStore.openDamengJobAdmin(node.connectionId);
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1240,7 +1240,7 @@ async function newQuery() {
|
||||
const options = await getDatabaseOptions(node.connectionId);
|
||||
queryStore.createTab(node.connectionId, resolveDefaultDatabase(connection, options), undefined, "query");
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
openDriverStoreForInstallError(e?.message || String(e));
|
||||
}
|
||||
}
|
||||
@@ -1312,7 +1312,7 @@ async function newSelectTemplate() {
|
||||
});
|
||||
openSqlTemplateTab(context.node.connectionId!, context.node.database!, context.node.schema, context.node.catalog, sql);
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1332,7 +1332,7 @@ async function newInsertTemplate() {
|
||||
});
|
||||
openSqlTemplateTab(context.node.connectionId!, context.node.database!, context.node.schema, context.node.catalog, sql);
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1351,7 +1351,7 @@ async function newUpdateTemplate() {
|
||||
});
|
||||
openSqlTemplateTab(context.node.connectionId!, context.node.database!, context.node.schema, context.node.catalog, sql);
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1370,7 +1370,7 @@ async function newDeleteTemplate() {
|
||||
});
|
||||
openSqlTemplateTab(context.node.connectionId!, context.node.database!, context.node.schema, context.node.catalog, sql);
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1424,7 +1424,7 @@ async function refresh() {
|
||||
try {
|
||||
await connectionStore.refreshTreeNode(node);
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
openDriverStoreForInstallError(e?.message || String(e), node);
|
||||
}
|
||||
}
|
||||
@@ -2539,7 +2539,7 @@ async function confirmEditDatabaseProperties() {
|
||||
showEditDatabasePropertiesDialog.value = false;
|
||||
await connectionStore.loadDatabases(node.connectionId, { force: true });
|
||||
} catch (e: any) {
|
||||
toast(t("contextMenu.tableOperationFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("contextMenu.tableOperationFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
} finally {
|
||||
editDatabasePropertiesLoading.value = false;
|
||||
}
|
||||
@@ -2611,7 +2611,7 @@ async function confirmEditSchemaComment() {
|
||||
showEditSchemaCommentDialog.value = false;
|
||||
await connectionStore.loadSchemas(node.connectionId, node.database, { force: true });
|
||||
} catch (e: any) {
|
||||
toast(t("contextMenu.tableOperationFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
toast(t("contextMenu.tableOperationFailed", { message: translateBackendError(t, e) }), 5000);
|
||||
} finally {
|
||||
schemaCommentLoading.value = false;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user