📂 カテゴリバリデーターブロック
カテゴリバリデーターブロックは、Nodeblocksアプリケーションにおけるカテゴリ関連操作のための検証機能を提供します。これらのバリデーターは、カテゴリの存在確認と操作前検証を確保します。
🎯 概要
カテゴリバリデーターブロックは以下を目的として設計されています:
- 操作前のカテゴリ存在の検証
- 階層関係の整合性確認
- カテゴリアクセス制御の実装
- 安全なカテゴリ操作の保証
- 再利用可能な検証ロジックの提供
📋 カテゴリバリデーター種類
存在確認バリデーター
カテゴリの存在とアクセス可能性をチェックするバリデーター。
🔧 利用可能なカテゴリバリデーター
doesCategoryExist
操作前にカテゴリの存在を検証します。
目的: 操作が実行される前にカテゴリがデータベースに存在することを確認
パラメータ:
payload
:RouteHandlerPayload
- リクエストコンテキストとデータを含むparams.requestParams.categoryId
: 検証するカテゴリIDcontext.db
: データベース接続
戻り値: void
- カテゴリが存在すれば通過
例外:
- NodeblocksError (404) メッセージ「Category not found」(カテゴリが見つからない場合)
- NodeblocksError (400) メッセージ「Category ID is required」(カテゴリIDが提供されていない場合)
キー機能:
- カテゴリIDがリクエストパラメータに含まれていることを確認
- データベースでカテゴリIDの存在を検索
- カテゴリが見つからない場合は404エラーを返す
- 後続のハンドラーがアクセス可能なカテゴリで動作することを保証
使用方法:
import { validators } from '@nodeblocks/backend-sdk';
const { doesCategoryExist } = validators;
// カテゴリ更新前の存在確認
compose(doesCategoryExist, updateCategory, normalizeCategoryTerminator);
// カテゴリ削除前の存在確認
compose(doesCategoryExist, deleteCategory, deleteCategoryTerminator);
// カテゴリ取得前の存在確認
compose(doesCategoryExist, getCategoryById, normalizeCategoryTerminator);
実用例:
// カテゴリステータス変更での使用
compose(
doesCategoryExist,
enableCategory,
enableCategoryTerminator
);
// 階層操作での使用
compose(
doesCategoryExist,
validateParentCategory,
updateCategory,
normalizeCategoryTerminator
);
🔗 関連ドキュメント
- カテゴリスキーマブロック - カテゴリデータ検証と契約
- カテゴリハンドラーブロック - カテゴリビジネスロジック機能
- カテゴリルートブロック - カテゴリHTTPエンドポイント定義
- カテゴリフィーチャーブロック - カテゴリコンポーズド機能