⚙️ カテゴリハンドラーブロック
カテゴリハンドラーブロックは、Nodeblocksアプリケーションにおけるカテゴリ管理操作のためのコアビジネスロジック機能を提供します。これらのハンドラーは、階層的カテゴリ管理、ステータス制御、データ変換の共通パターンをカプセル化します。
🎯 概要
カテゴリハンドラーブロックは以下を目的として設計されています:
- 再利用可能な機能でのカテゴリビジネスロジックのカプセル化
- 階層サポート付きカテゴリデータベース操作の処理
- 異なるフォーマット間でのカテゴリデータの変換
- カテゴリステータス管理(有効/無効)の実装
- 他のカテゴリブロックとのコンポジションのサポート
📋 カテゴリハンドラー種類
カテゴリ非同期ハンドラー
非同期カテゴリ操作(データベース呼び出し、階層処理など)を実行する機能。
カテゴリ同期ハンドラー
同期カテゴリ操作(データ変換、検証など)を実行する機能。
カテゴリターミネーターハンドラー
最終的なカテゴリレスポンスをフォーマットして返す機能。
🔧 利用可能なカテゴリハンドラー
createCategory
階層サポート付きデータベースに新しいカテゴリを作成します。
目的: 親子関係によるカテゴリの作成を処理
使用方法:
import { handlers } from '@nodeblocks/backend-sdk';
const { createCategory } = handlers;
// コンポジションで使用
const categoryPipeline = compose(createCategory, createCategoryTerminator);
getCategoryById
一意の識別子による単一カテゴリを取得します。
目的: カテゴリIDを使用してデータベースからカテゴリ詳細を取得
使用方法:
import { handlers } from '@nodeblocks/backend-sdk';
const { getCategoryById } = handlers;
// コンポジションで使用
const categoryPipeline = compose(getCategoryById, normalizeCategoryTerminator);
findCategories
フィルタリングと階層サポート付きで複数のカテゴリを検索します。
目的: 階層構造をサポートするカテゴリのクエリを処理
使用方法:
import { handlers } from '@nodeblocks/backend-sdk';
const { findCategories } = handlers;
// コンポジションで使用
const categoryPipeline = compose(findCategories, normalizeCategoriesListTerminator);
updateCategory
検証とエラー処理によるデータベース内のカテゴリデータを更新します。
目的: 階層関係を維持しながらカテゴリレコードを更新
使用方法:
import { handlers } from '@nodeblocks/backend-sdk';
const { updateCategory } = handlers;
// コンポジションで使用
const categoryPipeline = compose(updateCategory, getCategoryById, normalizeCategoryTerminator);
enableCategory
カテゴリを有効ステータスに設定します。
目的: カテゴリアクセスを有効化
使用方法:
import { handlers } from '@nodeblocks/backend-sdk';
const { enableCategory } = handlers;
// コンポジションで使用
const categoryPipeline = compose(enableCategory, enableCategoryTerminator);
disableCategory
カテゴリを無効ステータスに設定します。
目的: カテゴリアクセスを無効化
使用方法:
import { handlers } from '@nodeblocks/backend-sdk';
const { disableCategory } = handlers;
// コンポジションで使用
const categoryPipeline = compose(disableCategory, disableCategoryTerminator);
deleteCategory
クリーンアップ付きでデータベースからカテゴリを削除します。
目的: 階層関係を考慮してカテゴリを削除
使用方法:
import { handlers } from '@nodeblocks/backend-sdk';
const { deleteCategory } = handlers;
// コンポジションで使用
const categoryPipeline = compose(deleteCategory, deleteCategoryTerminator);
🎯 カテゴリターミネーターハンドラー
createCategoryTerminator
適切なステータスコードによるカテゴリ作成を終了します。
目的: 201ステータスによるカテゴリ作成成功レスポンスのフォーマット
normalizeCategoryTerminator
データベース固有のフィールドを削除してカテゴリデータを正規化します。
目的: APIレスポンス用カテゴリデータのクリーニング
normalizeCategoriesListTerminator
各アイテムからデータベース固有のフィールドを削除してカテゴリリストを正規化します。
目的: APIレスポンス用カテゴリ配列データのクリーニング
enableCategoryTerminator
カテゴリ有効化操作の成功レスポンスをフォーマットします。
目的: カテゴリ有効化成功レスポンスの提供
disableCategoryTerminator
カテゴリ無効化操作の成功レスポンスをフォーマットします。
目的: カテゴリ無効化成功レスポンスの提供
deleteCategoryTerminator
適切なステータスコードによるカテゴリ削除を終了します。
目的: 204ステータスによる削除成功レスポンスのフォーマット
🔗 関連ドキュメント
- カテゴリスキーマブロック - カテゴリデータ検証と契約
- カテゴリルートブロック - カテゴリHTTPエンドポイント定義
- カテゴリフィーチャーブロック - カテゴリコンポーズド機能
- カテゴリバリデーターブロック - カテゴリ検証機能