Phase 2-3: Lambda関数の実装 (leaveGroupロジック)

目的

グループ退出時のホスト判定とグループ解散ロジックを実装します。

ロジック仕様

処理フロー

  1. グループ情報取得 (GROUP#<groupId> / METADATA)
  2. ホスト判定 (hostId === nodeId)
  3. 分岐A: ホスト退出の場合
    • グループ内全アイテム削除 (Query + BatchWriteItem)
    • GroupDissolvePayload 返却
  4. 分岐B: 一般メンバー退出の場合
    • メンバー削除 (TransactWriteItems)
    • Node所属解除
    • Node 返却

タスク

Lambda関数実装

  • Ruby Lambda関数の作成 (lambda/leave_group_logic/index.rb)
  • DynamoDB操作実装
    • get_item - グループ情報取得
    • query - グループ内アイテム一覧取得
    • batch_write_item - 複数アイテム削除
    • transact_write_items - トランザクション処理
  • エラーハンドリング

CDK実装

  • Lambda Function リソースの定義
    • Runtime: Ruby 3.2
    • Handler: index.handler
    • Environment: TABLE_NAME
  • DynamoDB読み書き権限の付与
  • Lambda DataSourceの定義
  • Resolverの登録

テスト

  • 一般メンバー退出の動作確認
  • ホスト退出(グループ解散)の動作確認
  • エラーケース確認

成果物

  • Lambda関数コード (lambda/leave_group_logic/index.rb)
  • CDK Lambda定義コード
  • Resolver定義コード

関連

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com