Phase 2-3: Lambda関数の実装 (leaveGroupロジック)
目的
グループ退出時のホスト判定とグループ解散ロジックを実装します。
ロジック仕様
処理フロー
- グループ情報取得 (
GROUP#<groupId>/METADATA) - ホスト判定 (
hostId === nodeId) - 分岐A: ホスト退出の場合
- グループ内全アイテム削除 (Query + BatchWriteItem)
GroupDissolvePayload返却
- 分岐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定義コード
関連
- EPIC Issue: EPIC: Mesh v2 拡張機能の実装 #444
- Phase: 2 (バックエンドロジック)
- 依存: Phase 1-2: DynamoDBテーブルの設計と実装 #447 (Phase 1-2), Phase 1-3: AppSync GraphQL APIとスキーマの実装 #448 (Phase 1-3)
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com