-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: DELETE /user/{userID}の実装追加 #75
base: main
Are you sure you want to change the base?
Conversation
Co-authored-by: Takashi MIMA <[email protected]>
…-backend into feat/delete-user
75e2269
to
0f31952
Compare
今気づいたんですが,ユーザーを削除する際にfirebaseからも削除する必要があると思います. |
そうだったのですが、面倒そうだったので目を背けていました。
この2つの中では、後者の方が良いと思っています。 前者は、DBの削除に失敗した場合やコネクションが失敗した場合にfirebaseから削除したデータを再登録する必要があります。それに対し、後者はfirebaseの処理に失敗したときにDBに張っておいたトランザクションをロールバックすれば良いので実装上もよさそうです。 どうでしょうか? |
後者がよいと思います. |
その方向で修正します。 |
infra層でfirebaseとuserの2つに跨っているため、contextにトランザクションを持たせることとします。 |
userRepoとauthRepoのDeleteをmockを用いてControllerでテストする場合、DoInTx()の内部で別のモックを呼ぶ必要がありテストが出来ていません。 |
transactionの設計自体は特に問題は無いと思いました!
とかでいけませんか?(今手元にPCないので変なコード書いてるかもしれませんが、要はgomockのDoAndReturnを使えないかということです。) ControllerのテストではDoInTxは引数の関数をそのまま実行するモックにしたら良いのではないでしょうか! |
このPRの概要
DELETE /user/{userID}の実装追加
なぜこのPRが必要なのか
まだ実装されていなかったため
ref: #34