メインコンテンツまでスキップ
バージョン: 0.13.0 (Previous)

⚙️ カテゴリハンドラ

カテゴリハンドラは Express ミドルウェアではなくルートパイプライン関数です。params と context から RouteHandlerPayload の値を読み取り、成功した値を context.data にマージするか、成功した Result を HTTP レスポンス記述子で終了します。

インベントリ​

ハンドラパイプラインの役割入力 / context結果 / 動作 / エラールートでの使用
createCategoryハンドラ空でない requestBody、context.db.categoriescategoryId を書き込み;ベースエンティティを作成;失敗時に 400 または 500。createCategoryRoute
getCategoryByIdハンドラcontext.data.categoryId またはパス categoryId、context.db.categoriescategory を書き込み;失敗時に 400、404、または 500。createCategoryRoute、getCategoryRoute、updateCategoryRoute
findCategoriesハンドラrequestQuery、context.db.categories一致する categories を書き込み;クエリ失敗時に 500。findCategoriesRoute
updateCategoryハンドラカテゴリ ID、空でない requestBody、context.db.categoriesベースエンティティフィールドを更新し、更新結果を書き込み;400、404、または 500。updateCategoryRoute
deleteCategoryハンドラカテゴリ ID、context.db.categories一致するカテゴリを削除し、削除結果を書き込み;400、404、または 500。deleteCategoryRoute
enableCategoryハンドラカテゴリ ID、context.db.categoriesstatus を 'active' に設定;400、404、または 500。enableCategoryRoute
disableCategoryハンドラカテゴリ ID、context.db.categoriesstatus を 'inactive' に設定;400、404、または 500。disableCategoryRoute
normalizeCategoryTerminatorターミネータcontext.data.category_id を削除しカテゴリを1件返却;データ欠損は 500。createCategoryRoute、getCategoryRoute、updateCategoryRoute
normalizeCategoriesListTerminatorターミネータcontext.data.categories_id を削除しページネーションメタデータを保持;形状無効は 500。findCategoriesRoute
deleteCategoryTerminatorターミネータcontext.data.deleteCategory{ statusCode: 204 } を返却;データ欠損は 500。deleteCategoryRoute
enableCategoryTerminatorターミネータcontext.data.enableCategory{ statusCode: 204 } を返却;データ欠損は 500。enableCategoryRoute
disableCategoryTerminatorターミネータcontext.data.disableCategory{ statusCode: 204 } を返却;データ欠損は 500。disableCategoryRoute

詳細​

createCategory​

実装

空のボディを 400 で拒否し、createBaseEntity(requestBody) を挿入して生成された id を categoryId として書き込みます。データベースの失敗は 500、欠損した insertedId は 400 を返します。createCategoryRoute で使用されます。

getCategoryById​

実装

パスパラメータより前に context.data.categoryId を使用します。ID 欠損は 400、データベースの失敗は 500、一致するカテゴリなしは 404 です。createCategoryRoute、getCategoryRoute、updateCategoryRoute で使用されます。

findCategories​

実装

requestQuery(または {})を直接 categories.find に渡し、カーソルを配列に変換して categories を書き込みます;データベースの失敗は 500 です。エクスポートされたルートでは、withPagination がこのハンドラの前に page と limit を削除し、toArray() をページネーションされた { data, metadata } 結果に変更します。findCategoriesRoute で使用されます。ページネーションはそのルートの withPagination ラッパーによって適用されます。

updateCategory​

実装

ID と空でないボディを要求し、updateBaseEntity(requestBody) を適用します。ID またはボディの欠損は 400;一致なしは 404;変更なしは 400 です。updateCategoryRoute で使用されます。

deleteCategory​

実装

ID で削除し deleteCategory を書き込みます。ID 欠損は 400、削除なしは 404、データベースの失敗は 500 です。deleteCategoryRoute で使用されます。

enableCategory​

実装

updateBaseEntity({ status: 'active' }) でカテゴリを更新します。ID 欠損は 400、一致なしは 404、変更なしの結果は 500 です。enableCategoryRoute で使用されます。

disableCategory​

実装

updateBaseEntity({ status: 'inactive' }) でカテゴリを更新します。ID 欠損は 400、一致なしは 404、変更なしの結果は 500 です。disableCategoryRoute で使用されます。

normalizeCategoryTerminator​

実装

パイプラインエラーをスローするか、context.data.category が欠損している場合に 500 をスローします;それ以外の場合は MongoDB _id なしでカテゴリを返却します。createCategoryRoute、getCategoryRoute、updateCategoryRoute で使用されます。

normalizeCategoriesListTerminator​

実装

パイプラインエラーをスローするか、categories が配列またはページネーションされた { data, metadata } 値でない場合に 500 をスローします。返却されるすべてのカテゴリから _id を削除します。エクスポートされたルートでは、ページネーションされた入力は常に { data, metadata: { pagination } } に正規化されます。findCategoriesRoute で使用されます。

deleteCategoryTerminator​

実装

パイプラインエラーをスローするか、deleteCategory が欠損している場合に 500 をスローします;それ以外の場合は { statusCode: 204 } を返却します。deleteCategoryRoute で使用されます。

enableCategoryTerminator​

実装

パイプラインエラーをスローするか、enableCategory が欠損している場合に 500 をスローします;それ以外の場合は { statusCode: 204 } を返却します。enableCategoryRoute で使用されます。

disableCategoryTerminator​

実装

パイプラインエラーをスローするか、disableCategory が欠損している場合に 500 をスローします;それ以外の場合は { statusCode: 204 } を返却します。disableCategoryRoute で使用されます。