👤 ユーザーブロック
ユーザーブロックは、Nodeblocksアプリケーションでユーザー管理の包括的な機能を提供します。これらのブロックは、作成、認証、プロフィール管理、アカウント管理を含むユーザーライフサイクル操作を処理します。
🎯 概要
ユーザーブロックは以下の目的で設計されています:
- ユーザーアカウントの管理 - 完全なCRUD操作を含む
- 認証と認可フローの処理 - 認証と認可の流れを処理
- プロフィール管理の提供 - バリデーションを含む
- ユーザー管理の有効化 - ロールベースのアクセス制御
📦 ブロックタイプ
🔍 スキーマ
ユーザーデータのバリデーション用のJSON Schema定義:
- userSchema: 基本ユーザーエンティティ構造
- createUserSchema: ユーザー登録バリデーション
- updateUserSchema: プロフィール更新バリデーション
- getUserSchema: ユーザー取得バリデーション
- deleteUserSchema: ユーザー削除バリデーション
- findUsersSchema: フィルタリングとページネーションを含むユーザー検索
🔧 ブロック
ユーザープロフィール操作用の純粋なビジネスロジック関数:
- getUserById: データストアからのプロフィール取得
- findProfiles: フィルタリングとページネーションを含むプロフィール検索
- normalizeUser: 単一ユーザーオブジェクトの正規化
- normalizeUsers: ユーザーオブジェクト配列の正規化
- deleteAvatar: ストレージからのユーザーアバターファイルの削除
⚙️ ハンドラー
ユーザー操作のコアビジネスロジック:
- createUser: ユーザーアカウントの作成
- getUserById: ユーザーデータの取得
- findUsers: オプションのフィルタリングを含むユーザー検索
- updateUser: プロフィールの更新
- deleteUser: アカウントの削除
ターミネーターハンドラー:
- normalizeUserTerminator: データベース固有のフィールドを削除してユーザーデータを正規化
- normalizeUsersListTerminator: 各アイテムからデータベース固有のフィールドを削除してユーザーリストを正規化
- deleteUserTerminator: 204ステータスで成功した削除応答をフォーマット
🛣️ ルート
ユーザー操作用のHTTPエンドポイント定義:
- createUserRoute: ユーザー作成ハンドラー付きPOST
/users - getUserRoute: ユーザー取得ハンドラー付きGET
/users/:profileId - findUsersRoute: ユーザー検索とページネーション付きGET
/users - findProfilesByIdentityIdRoute: プロフィール取得とアバター処理付きGET
/profiles/identities/:identityId - updateUserRoute: ユーザー更新ハンドラー付きPATCH
/users/:profileId - deleteUserRoute: ユーザー削除ハンドラー付きDELETE
/users/:profileId - getAvatarUploadUrlRoute: 署名付きURL生成付きGET
/user-profiles/:profileId/avatar-upload-url
🚀 機能
スキーマ、ルート、ハンドラーを組み合わせた完全なユーザー管理機能:
- createUserFeature: バリデーション付きユーザー登録
- getUserFeatures: アクセス制御付きユーザープロフィール取得
- findUsersFeatures: ページネーション付きユーザー検索とリスト表示
- findProfilesByIdentityIdFeature: アバター処理付きIDによるユーザープロフィール取得
- editUserFeatures: 認可付きユーザープロフィール更新
- deleteUserFeatures: アクセス制御付きユーザーアカウント削除
- getAvatarUploadUrlFeature: アバターアップロードURL生成
✅ バリデーター
ユーザー操作用のバリデーション関数:
- ownsProfile: 認証されたIDによるプロフィール所有権のバリデーション
- validateUserProfileAccess (非推奨): レガシーアクセスバリデーター;
ownsProfileに置き換えられました
🔗 関連ドキュメント
- ユーザースキーマ - ユーザーデータのバリデーションと契約
- ユーザーハンドラー - ユーザービジネスロジック関数
- ユーザールート - HTTPエンドポイント定義
- ユーザー機能 - 完全なユーザー管理機能
- ユーザーバリデーター - ユーザーバリデーション関数