Skip to content

Feat/wakape/user groups put api#1100

Merged
Wakai111 merged 9 commits into
developfrom
feat/wakape/user_groups_put_api
May 25, 2026
Merged

Feat/wakape/user groups put api#1100
Wakai111 merged 9 commits into
developfrom
feat/wakape/user_groups_put_api

Conversation

@Wakai111
Copy link
Copy Markdown
Collaborator

対応Issue

resolve #0

概要

ユーザーの所属部門を年度ごとに更新するためのAPIを追加。
現在の状態との差分計算をしてから更新する設計にしています。
設計書

【主な実装内容】

  • API設計 (openapi.yaml, openapi_gen.go)
    • PUT /users/{user_id}/groups/year/{year} を追加。
  • Domain層 (user_group.go)
    • 既存の所属部門配列とリクエストされた部門配列を比較し、追加分と削除分を算出する Diff メソッドを実装。
  • Repository層 (user_group_repository.go)
    • 差分データを更新するため、BulkInsertBulkDelete を実装。
  • Usecase & Handler層 (user_usecase.go, user_handler.go)
    • リクエストされた部門配列から、追加・削除すべきデータを抽出して更新するロジックを実装。
    • 指定した年度に実在しない不正な部門IDがリクエストされた場合、未然に弾くチェックを実装。

※今回もAIを活用して壁打ちを行いながら、コードの実装しています。

画面スクリーンショット等

今回はバックエンドAPIのみのため割愛。Swagger UIから動作確認可能です。

テスト項目

Swagger UIにて PUT /users/{user_id}/groups/year/{year} を実行し、以下を確認。

  • groupIds に今年度の部門ID配列(例: [1, 2])を渡すと、正常にDBが差分更新(登録/削除)されること。
  • groupIds に空配列 [] を渡すと、指定年度の所属だけが全件削除され、過去年度のデータには影響がないこと。
  • groupIds に存在しないID、または別年度のIDを混ぜてリクエストすると、400エラー (invalid group id) で弾かれること。

備考

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request implements a new endpoint for updating user group assignments by year, including a new repository for bulk operations and a domain-level diffing utility. The feedback highlights opportunities to optimize performance by removing a redundant database query in the use case and to improve code robustness by addressing unused variables and tight coupling in the row scanning logic.

Comment thread api/internals/usecase/user_usecase.go Outdated
Comment thread api/internals/usecase/user_usecase.go Outdated
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented May 20, 2026

Deploying finansu with  Cloudflare Pages  Cloudflare Pages

Latest commit: 2df3d6e
Status: ✅  Deploy successful!
Preview URL: https://4b5e55fa.finansu.pages.dev
Branch Preview URL: https://feat-wakape-user-groups-put.finansu.pages.dev

View logs

@Chikuwa0141 Chikuwa0141 self-requested a review May 24, 2026 14:22
Copy link
Copy Markdown
Collaborator

@Chikuwa0141 Chikuwa0141 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

気づいたことコメントしました!

Comment thread api/internals/usecase/user_usecase.go
Comment thread api/internals/usecase/user_usecase.go Outdated
Comment thread api/internals/usecase/user_usecase.go Outdated
Comment thread api/externals/handler/user_handler.go
@Wakai111
Copy link
Copy Markdown
Collaborator Author

@Chikuwa0141
コメント箇所修正しました。確認よろしくお願いします。

@Chikuwa0141 Chikuwa0141 self-requested a review May 25, 2026 03:17
Copy link
Copy Markdown
Collaborator

@Chikuwa0141 Chikuwa0141 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Chikuwa0141 Chikuwa0141 self-requested a review May 25, 2026 06:17
@Wakai111 Wakai111 merged commit 28c3d25 into develop May 25, 2026
4 checks passed
@Wakai111 Wakai111 deleted the feat/wakape/user_groups_put_api branch May 25, 2026 06:55
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.

2 participants