misskey-dev / misskey

🌎 A completely free and open interplanetary microblogging platform 🚀
https://misskey-hub.net/
GNU Affero General Public License v3.0
9.95k stars 1.35k forks source link

fix: 通知からロール参照時にロールが存在しないときの例外処理を追加 #14500

Open hinanoaira opened 1 month ago

hinanoaira commented 1 month ago

What

このプルリクエストでは、通知に含まれるロールが削除されている場合に発生する例外を処理し、削除されたロールに対応した通知の処理をスキップする修正を加えました。 具体的には、roleEntityService.pack(notification.roleId)を実行する際に、ロールが存在しない場合にはEntityNotFoundErrorをキャッチして、nullを返すように変更しています。 これにより、通知が「エラーが発生しました」と表示される問題を解消します。

また、不要なESLintの注釈がエディタの機能により自動的に削除されています。

Why

現在、削除されたロールを参照しようとすると、DBからnullが返ってきて例外が発生し、ユーザーにはエラーメッセージしか表示されなくなってしまいます。 この問題を解消するために、削除されたロールに関連する通知の処理をスキップするようにしました。 これにより、ユーザーに対して不要なエラーメッセージが表示されることがなくなります。

Additional info (optional)

ローカル環境でのテストを行い、問題が解消されたことを確認しています。

Checklist

github-actions[bot] commented 1 month ago

このPRによるapi.jsonの差分

差分はこちら ```diff ```

Get diff files from Workflow Page

codecov[bot] commented 1 month ago

Codecov Report

Attention: Patch coverage is 60.00000% with 2 lines in your changes missing coverage. Please review.

Project coverage is 39.63%. Comparing base (2cbe1d1) to head (849e7ff).

Files with missing lines Patch % Lines
...end/src/core/entities/NotificationEntityService.ts 60.00% 2 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## develop #14500 +/- ## =========================================== - Coverage 41.37% 39.63% -1.74% =========================================== Files 1543 1539 -4 Lines 196679 190971 -5708 Branches 3547 3504 -43 =========================================== - Hits 81371 75688 -5683 + Misses 114714 114689 -25 Partials 594 594 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

syuilo commented 1 month ago

様々なPRは https://github.com/misskey-dev/misskey/pull/13929#issuecomment-2337926046 が終わってから入れます🙏

kakkokari-gtyih commented 1 month ago

様々なPRは #13929 (comment) が終わってから入れます🙏

Off topic: リバートのリバートが用意できてもそれを入れるには https://github.com/misskey-dev/misskey/issues/14529 での議論を完了させる必要がある気がする

syuilo commented 1 month ago

それはあまり関係なさそう

syuilo commented 1 month ago

様々なPRは #13929 (comment) が終わってから入れます🙏

入れてからというよりPRがある状態になってから

kakkokari-gtyih commented 4 weeks ago

様々なPRは #13929 (comment) が終わってから入れます🙏

https://github.com/misskey-dev/misskey/pull/14546

syuilo commented 4 weeks ago

roleEntityService.packがエラーをハンドリングしてEntityNotFoundError以外の方法でエラーを表現するようになった場合に壊れそうという懸念があるわね

syuilo commented 4 weeks ago

EntityNotFoundErrorはTypeORMのエラーなので実際にそうなる可能性は少なくない

syuilo commented 4 weeks ago

TypeScriptでその関数がどのようなエラーを発生させる可能性があるかを型定義できたりすれば解決するけどできない気がする からError以外の(型を使える)方法でエラーを表現するかID付きエラーを使うようにすれば良さそう