✅ カテゴリバリデータ
カテゴリルートは、直接のカテゴリ存在ガードと共有認証・管理者チェックを構成します。
インベントリ
| バリデータ | 読み取り | 成功条件 | 失敗 / エラー | 消費者 |
|---|---|---|---|---|
doesCategoryExist | params.requestParams.categoryId、context.db.categories | その ID を持つカテゴリが存在する。 | 404 Category does not exist;データベースの拒否がサービスにより 500 に到達。 | getCategoryRoute、updateCategoryRoute、deleteCategoryRoute、enableCategoryRoute、disableCategoryRoute |
isAuthenticated() | context.authenticate、または Bearer トークンのフォールバック | 設定された認証が成功する。 | アダプター定義の認証失敗。 | createCategoryRoute、updateCategoryRoute、deleteCategoryRoute、enableCategoryRoute、disableCategoryRoute |
checkIdentityType(['admin']) | 認証アダプター、identities、configuration.identity.typeIds | アイデンティティ typeId が設定された admin ID に等しい。 | 500、401、または 403(失敗した前提条件による)。 | createCategoryRoute、updateCategoryRoute、deleteCategoryRoute、enableCategoryRoute、disableCategoryRoute |
詳細
doesCategoryExist
実装
これは直接バリデータです;doesCategoryExist() ではなく doesCategoryExist を使用してください。context.db.categories で String(params.requestParams?.categoryId) をルックアップし、レコードが存在しない場合に NodeblocksError(404, 'Category does not exist') をスローします。データベースの拒否を捕捉しないため、defService がその拒否を 500 サービスエラーに変換します。
消費者: getCategoryRoute、updateCategoryRoute、deleteCategoryRoute、enableCategoryRoute、disableCategoryRoute。
isAuthenticated()
実装
共有ファクトリバリデータです。設定されている場合 context.authenticate(payload) を呼び出します;そうでない場合は SDK Bearer トークンアダプターを使用します。アダプターはクライアントに返される認証エラーを決定します。
消費者: createCategoryRoute、updateCategoryRoute、deleteCategoryRoute、enableCategoryRoute、disableCategoryRoute。Authentication バリデータリファレンス を参照してください。
checkIdentityType(['admin'])
実装
共有ファクトリバリデータです。db.identities と configuration.identity.typeIds を要求し、リクエストを認証し、アイデンティティを読み込み、その typeId を typeIds.admin と比較します。設定の欠損は 500;無効なトークンは 401;利用できない、不正な形式、または非管理者のアイデンティティは 403 です。
消費者: createCategoryRoute、updateCategoryRoute、deleteCategoryRoute、enableCategoryRoute、disableCategoryRoute。Authentication バリデータリファレンス を参照してください。