pantasystem / Milktea

Misskey, MastodonのAndroidクライアント「Milktea」のソースコード
GNU General Public License v3.0
255 stars 22 forks source link

ロールによって発生したエラーに対応する #1452

Open pantasystem opened 1 year ago

pantasystem commented 1 year ago

概要

Misskey v13でロール機能が追加され ロールの制限値をオーバーするとエラーが返ってくるようになった。 その対応を行いたい。

pantasystem commented 1 year ago

リスト個数制限オーバー時のエラー

{
    "error": {
        "message": "You cannot create user list any more.",
        "code": "TOO_MANY_USERLISTS",
        "id": "0cf21a28-7715-4f39-a20d-777bfdb8d138",
        "kind": "client"
    }
}
pantasystem commented 1 year ago

リストへのユーザー追加個数オーバー時のエラー ????????

{
    "error": {
        "message": "Internal error occurred. Please contact us if the error persists.",
        "code": "INTERNAL_ERROR",
        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac",
        "kind": "server",
        "info": {
            "e": {
                "message": "Too many users",
                "code": "Error",
                "stack": "Error: Too many users\n    at UserListService.push (file:///misskey/packages/backend/built/core/UserListService.js:38:19)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async file:///misskey/packages/backend/built/server/api/endpoints/users/lists/push.js:96:13\n    at async ApiCallService.call (file:///misskey/packages/backend/built/server/api/ApiCallService.js:273:16)"
            }
        }
    }
}
pantasystem commented 1 year ago

クリップ個数オーバー時

{
    "error": {
        "message": "You cannot create clip any more.",
        "code": "TOO_MANY_CLIPS",
        "id": "920f7c2d-6208-4b76-8082-e632020f5883",
        "kind": "client"
    }
}
pantasystem commented 1 year ago

クリップへのノート追加数オーバー時

{
    "error": {
        "message": "You cannot add notes to the clip any more.",
        "code": "TOO_MANY_CLIP_NOTES",
        "id": "f0dba960-ff73-4615-8df4-d6ac5d9dc118",
        "kind": "client"
    }
}
pantasystem commented 1 year ago

ドライブの容量オーバー時

{
    "error": {
        "message": "Cannot upload the file because you have no free space of drive.",
        "code": "NO_FREE_SPACE",
        "id": "d08dbc37-a6a9-463a-8c47-96c32ab5f064",
        "kind": "client"
    }
}
pantasystem commented 1 year ago

ちなみにロールが非公開な場合自身に割り当てられているroleの値すら取得することができないので 一度リクエストを送ってみてエラーが返ってくるかを確認するまではバリデーションできない

pantasystem commented 1 year ago

これってステータスコード何だっけ?

pantasystem commented 1 year ago

同一ViewModel内で行われるような処理は、 ダイアログなどでロールによってエラーが発生したことを表示すれば良いが ノートの投稿などのWorkerなどで実行されている処理はどう表現するのか?という問題がある