メインコンテンツまでスキップ
バージョン: 0.4.2

⚙️ ユーザーハンドラーブロック

ユーザーハンドラーブロックは、Nodeblocksアプリケーションにおけるユーザー管理操作のためのコアビジネスロジック機能を提供します。これらのハンドラーは、ユーザーアカウントのライフサイクル管理、データ変換、レスポンスフォーマッティングの共通パターンをカプセル化します。


🎯 概要

ユーザーハンドラーブロックは以下を目的として設計されています:

  • 再利用可能な機能でのユーザービジネスロジックのカプセル化
  • 適切なエラー管理によるユーザーデータベース操作の処理
  • 異なるフォーマット間でのユーザーデータの変換
  • TypeScript統合による型安全性の確保
  • 他のユーザーブロックとのコンポジションのサポート

📋 ユーザーハンドラー種類

ユーザー非同期ハンドラー

非同期ユーザー操作(データベース呼び出し、APIリクエストなど)を実行する機能。

ユーザー同期ハンドラー

同期ユーザー操作(データ変換、検証など)を実行する機能。

ユーザーターミネーターハンドラー

最終的なユーザーレスポンスをフォーマットして返す機能。


🔧 利用可能なユーザーハンドラー

createUser

データベースに新しいユーザーアカウントを作成します。

目的: エンティティ管理によるユーザーアカウントの作成を処理

使用方法:

import { handlers } from '@nodeblocks/backend-sdk';

const { createUser } = handlers;

// コンポジションで使用
const userPipeline = compose(createUser, createUserTerminator);

getUserById

一意の識別子による単一ユーザーを取得します。

目的: ユーザーIDを使用してデータベースからユーザー詳細を取得

使用方法:

import { handlers } from '@nodeblocks/backend-sdk';

const { getUserById } = handlers;

// コンポジションで使用
const userPipeline = compose(getUserById, normalizeUserTerminator);

findUsers

オプションのフィルタリング付きで複数のユーザーを検索します。

目的: フィルタサポート付きユーザーのクエリを処理

使用方法:

import { handlers } from '@nodeblocks/backend-sdk';

const { findUsers } = handlers;

// コンポジションで使用
const userPipeline = compose(findUsers, normalizeUsersListTerminator);

updateUser

検証とエラー処理によるデータベース内のユーザーデータを更新します。

目的: 適切な検証によるユーザーレコードの更新

使用方法:

import { handlers } from '@nodeblocks/backend-sdk';

const { updateUser } = handlers;

// コンポジションで使用
const userPipeline = compose(updateUser, normalizeUserTerminator);

deleteUser

一意の識別子によるデータベースからユーザーを削除します。

目的: 検証によるユーザーレコードの永続的削除

使用方法:

import { handlers } from '@nodeblocks/backend-sdk';

const { deleteUser } = handlers;

// コンポジションで使用
const userPipeline = compose(deleteUser, deleteUserTerminator);

lockUser

セキュリティ目的でユーザーアカウントをロックします。

目的: アカウントアクセスを無効化してセキュリティを向上

使用方法:

import { handlers } from '@nodeblocks/backend-sdk';

const { lockUser } = handlers;

// コンポジションで使用
const userPipeline = compose(lockUser, lockUserTerminator);

unlockUser

以前にロックされたユーザーアカウントをアンロックします。

目的: ロック後のアカウントアクセスを復元

使用方法:

import { handlers } from '@nodeblocks/backend-sdk';

const { unlockUser } = handlers;

// コンポジションで使用
const userPipeline = compose(unlockUser, unlockUserTerminator);

🎯 ユーザーターミネーターハンドラー

createUserTerminator

適切なステータスコードによるユーザー作成を終了します。

目的: 201ステータスによるユーザー作成成功レスポンスのフォーマット


normalizeUserTerminator

データベース固有のフィールドを削除してユーザーデータを正規化します。

目的: APIレスポンス用ユーザーデータのクリーニング


normalizeUsersListTerminator

各アイテムからデータベース固有のフィールドを削除してユーザーリストを正規化します。

目的: APIレスポンス用ユーザー配列データのクリーニング


deleteUserTerminator

適切なステータスコードによるユーザー削除を終了します。

目的: 204ステータスによる削除成功レスポンスのフォーマット


lockUserTerminator

適切なステータスコードによるユーザーロックを終了します。

目的: 204ステータスによるユーザーロック成功レスポンスをフォーマット

パラメータ:

  • result: Result<RouteHandlerPayload, Error> - ペイロードまたはエラーを含む結果
    • context.data.lockUser: 前のハンドラーからのロック結果

戻り値: 204 statusCodeを含むレスポンスオブジェクト

ペイロード要件:

  • context.data.lockUserが前のハンドラーから利用可能であること

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { lockUserTerminator } = handlers;

// コンポジションでの使用
const userPipeline = compose(lockUser, lockUserTerminator);

unlockUserTerminator

適切なステータスコードによるユーザーアンロックを終了します。

目的: 204ステータスによるユーザーアンロック成功レスポンスをフォーマット

パラメータ:

  • result: Result<RouteHandlerPayload, Error> - ペイロードまたはエラーを含む結果
    • context.data.unlockUser: 前のハンドラーからのアンロック結果

戻り値: 204 statusCodeを含むレスポンスオブジェクト

ペイロード要件:

  • context.data.unlockUserが前のハンドラーから利用可能であること

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { unlockUserTerminator } = handlers;

// コンポジションでの使用
const userPipeline = compose(schema, unlockUser, unlockUserTerminator);

🔗 関連ドキュメント