Skip to content

Fix/walt/admin firework next id mismatch - #43

Open
nakatashingo wants to merge 4 commits into
developfrom
fix/walt/admin-firework-next-id-mismatch
Open

Fix/walt/admin firework next id mismatch#43
nakatashingo wants to merge 4 commits into
developfrom
fix/walt/admin-firework-next-id-mismatch

Conversation

@nakatashingo

Copy link
Copy Markdown
Collaborator

概要

  • 花火削除後、管理画面の「花火を作成」ボタン・「次に作成される花火ID」が実際に採番されるIDとズレて表示される不具合を修正
  • 花火削除時の確認ダイアログが英語のまま表示される不具合を修正(develop から既存のバグ)

原因・変更内容

次に作成される花火IDのズレ

  • 花火の削除は論理削除(deleted_at を立てるのみ)で行が物理的に残るため、DBの id(シーケンス採番)は削除しても巻き戻らない
  • しかし管理画面は「表示中(削除済みを除く)の花火の最大ID + 1」で次のIDを予測しており、削除済みを含めた実際の採番値とズレていた
  • 本来呼ぶはずだった /fireworks/latest-id がAPI側に未実装で常に404になり、上記の誤った計算に必ずフォールバックしていた

変更内容:

  • openapi.yaml / api/openapi/openapi.gen.go: GET /fireworks/latest-id エンドポイントを追加
  • api/usecase/firework_usecase.go: GetLatestFireworkId を追加。Unscoped() で論理削除済みの行も含めて MAX(id) を取得し、DBの実際の採番値と一致させる
  • api/handler/firework_handler.go: 上記usecaseを呼び出すハンドラを追加
  • admin/hooks/useFireworks.ts: fetchFireworks 内にあった重複・誤りのある「表示中データからmax+1を計算」処理を削除し、常に fetchLatestId(新エンドポイント)経由で次のIDを取得するよう統一
    • fetchLatestIdfallbackList を必須引数化し useCallback の依存配列から fireworks state を除去(fireworks に依存させたままだと fetchFireworks と相互再生成され、mount時の無限再フェッチループになるため)
    • loadAllImagesFromLocalStoragefetchLatestId の直列 awaitPromise.all で並列化

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant