メインコンテンツまでスキップ
バージョン: 0.14.0 (最新)

⚙️ カテゴリハンドラ

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

インベントリ

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

詳細

createCategory

実装

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

getCategoryById

実装

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

findCategories

実装

requestQuery(または {})を直接 categories.find に渡し、カーソルを配列に変換して categories を書き込みます;データベースの失敗は 500 です。エクスポートされたルートでは、withPagination がこのハンドラの前に pagelimit を削除し、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 なしでカテゴリを返却します。createCategoryRoutegetCategoryRouteupdateCategoryRoute で使用されます。

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 で使用されます。