From 77602203b297a1ce71048ddf8deacdeea72af669 Mon Sep 17 00:00:00 2001 From: Johann150 Date: Sun, 26 Mar 2023 10:55:27 +0200 Subject: [PATCH] client: replace error UUIDs with error codes The error UUIDs were removed from the backend and trying to match against the IDs no longer works. This can produce confusing UI behaviour when displaying errors. closes https://akkoma.dev/FoundKeyGang/FoundKey/issues/363 Changelog: Fixed --- packages/client/src/account.ts | 2 +- packages/client/src/components/drive.folder.vue | 4 ++-- packages/client/src/components/drive.vue | 8 ++++---- packages/client/src/components/signin.vue | 10 +++++----- packages/client/src/pages/page-editor.vue | 2 +- packages/client/src/scripts/get-note-menu.ts | 4 ++-- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/client/src/account.ts b/packages/client/src/account.ts index 88fc8387d..e39540e47 100644 --- a/packages/client/src/account.ts +++ b/packages/client/src/account.ts @@ -78,7 +78,7 @@ function fetchAccount(token: string): Promise { api('i', {}, token) .then(res => { if (res.error) { - if (res.error.id === 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370') { + if (res.error.code === 'SUSPENDED') { showSuspendedDialog().then(() => { signout(); }); diff --git a/packages/client/src/components/drive.folder.vue b/packages/client/src/components/drive.folder.vue index c613571f5..bfc3ffaf6 100644 --- a/packages/client/src/components/drive.folder.vue +++ b/packages/client/src/components/drive.folder.vue @@ -207,8 +207,8 @@ function deleteFolder() { defaultStore.set('uploadFolder', null); } }).catch(err => { - switch (err.id) { - case 'b0fc8a17-963c-405d-bfbc-859a487295e1': + switch (err.code) { + case 'HAS_CHILD_FILES_OR_FOLDERS': os.alert({ type: 'error', title: i18n.ts.unableToDelete, diff --git a/packages/client/src/components/drive.vue b/packages/client/src/components/drive.vue index d39e256f8..a3b67a5b2 100644 --- a/packages/client/src/components/drive.vue +++ b/packages/client/src/components/drive.vue @@ -258,8 +258,8 @@ function onDrop(ev: DragEvent): any { folderId: droppedFolder.id, parentId: folder?.id ?? null, }).catch(err => { - switch (err) { - case 'detected-circular-definition': + switch (err.code) { + case 'RECURSIVE_FOLDER': os.alert({ title: i18n.ts.unableToProcess, text: i18n.ts.circularReferenceFolder, @@ -335,8 +335,8 @@ function deleteFolder(folderToDelete: foundkey.entities.DriveFolder) { // 削除時に親フォルダに移動 move(folderToDelete.parentId); }).catch(err => { - switch (err.id) { - case 'b0fc8a17-963c-405d-bfbc-859a487295e1': + switch (err.code) { + case 'HAS_CHILD_FILES_OR_FOLDERS': os.alert({ type: 'error', title: i18n.ts.unableToDelete, diff --git a/packages/client/src/components/signin.vue b/packages/client/src/components/signin.vue index 42f5bf8f0..8f0c5fe17 100644 --- a/packages/client/src/components/signin.vue +++ b/packages/client/src/components/signin.vue @@ -185,8 +185,8 @@ function onSubmit() { } function loginFailed(err) { - switch (err.id) { - case '6cc579cc-885d-43d8-95c2-b8c7fc963280': { + switch (err.code) { + case 'NO_SUCH_USER': { os.alert({ type: 'error', title: i18n.ts.loginFailed, @@ -194,7 +194,7 @@ function loginFailed(err) { }); break; } - case '932c904e-9460-45b7-9ce6-7ed33be7eb2c': { + case 'ACCESS_DENIED': { os.alert({ type: 'error', title: i18n.ts.loginFailed, @@ -202,11 +202,11 @@ function loginFailed(err) { }); break; } - case 'e03a5f46-d309-4865-9b69-56282d94e1eb': { + case 'SUSPENDED': { showSuspendedDialog(); break; } - case '22d05606-fbcf-421a-a2db-b32610dcfd1b': { + case 'RATE_LIMIT_EXCEEDED': { os.alert({ type: 'error', title: i18n.ts.loginFailed, diff --git a/packages/client/src/pages/page-editor.vue b/packages/client/src/pages/page-editor.vue index 6f0af17ee..9763e6466 100644 --- a/packages/client/src/pages/page-editor.vue +++ b/packages/client/src/pages/page-editor.vue @@ -115,7 +115,7 @@ function save() { const options = getSaveOptions(); const onError = err => { - if (err.id === '3d81ceae-475f-4600-b2a8-2bc116157532') { + if (err.code === 'INVALID_PARAM') { if (err.info.param === 'name') { os.alert({ type: 'error', diff --git a/packages/client/src/scripts/get-note-menu.ts b/packages/client/src/scripts/get-note-menu.ts index 1afab0071..73b960cae 100644 --- a/packages/client/src/scripts/get-note-menu.ts +++ b/packages/client/src/scripts/get-note-menu.ts @@ -104,7 +104,7 @@ export function getNoteMenu(props: { os.apiWithDialog(pin ? 'i/pin' : 'i/unpin', { noteId: appearNote.id, }, undefined, null, res => { - if (res.id === '72dab508-c64d-498f-8740-a8eec1ba385a') { + if (res.code === 'PIN_LIMIT_EXCEEDED') { os.alert({ type: 'error', text: i18n.ts.pinLimitExceeded, @@ -149,7 +149,7 @@ export function getNoteMenu(props: { os.api('clips/add-note', { clipId: clip.id, noteId: appearNote.id }), null, async (err) => { - if (err.id === '734806c4-542c-463a-9311-15c512803965') { + if (err.id === 'ALREADY_CLIPPED') { const confirm = await os.confirm({ type: 'warning', text: i18n.t('confirmToUnclipAlreadyClippedNote', { name: clip.name }),