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

⚙️ プロダクトハンドラー

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

一覧​

ハンドラーパイプラインでの役割入力 / コンテキスト結果 / 動作 / エラー使用するルート
createProductハンドラーrequestBody、db.products基本エンティティを作成し productId を書き込みます。空本文/挿入失敗は 400、DB 失敗は 500。createProductRoute
createProductBatchハンドラー配列の requestBody、db.products基本エンティティを作成し productIds を書き込みます。無効入力/件数不一致は 400、DB 失敗は 500。createProductBatchRoute
getProductByIdハンドラーcontext.data.productId またはパス productId、db.productsproduct を書き込みます。ID 欠落は 400、不在は 404、DB 失敗は 500。カスタム合成のみ
getProductsByIdsハンドラーcontext.data.productIds または requestBody、db.productsproducts を書き込みます。ID 欠落/非配列は 400、一致なしは 404、DB 失敗は 500。createProductBatchRoute、updateProductBatchRoute、copyProductBatchRoute
findProductsハンドラーrequestQuery、db.productsクエリまたは空フィルターから products を書き込みます。DB 失敗は 500。カスタム合成のみ
updateProductハンドラーパス/コンテキスト ID、requestBody、db.productsupdateBaseEntity で更新して updateProductId を書き込みます。入力欠落/変更なしは 400、一致なしは 404、DB 失敗は 500。updateProductRoute
updateProductBatchハンドラーID、更新データ、db.products一致 ID を更新して productIds を書き込みます。入力欠落/空/変更なしは 400、一致なしは 404、DB 失敗は 500。updateProductBatchRoute
copyProductハンドラーパス/コンテキスト ID、db.products_id なしでコピーし、新しい productId を書き込みます。ID 欠落/挿入失敗は 400、不在は 404、DB 失敗は 500。copyProductRoute
copyProductBatchハンドラーID、db.products見つかったプロダクトを _id なしでコピーし、新しい productIds を書き込みます。無効 ID/件数不一致は 400、一致なしは 404、DB 失敗は 500。copyProductBatchRoute
deleteProductハンドラーパス/コンテキスト ID、db.productsdeleteProduct を書き込みます。ID なしは 400、削除なしは 404、DB 失敗は 500。deleteProductRoute
deleteProductBatchハンドラーID、db.productsdeleteProducts を書き込みます。無効 ID/削除なしは 400、DB 失敗は 500。deleteProductBatchRoute
normalizeProductTerminatorターミネーター結果、context.data.product_id を削除し、エラー結果またはデータ欠落時は 500 をスローします。カスタム合成のみ
normalizeProductsListTerminatorターミネーター結果、context.data.products配列またはページネーション済み data から _id を削除しメタデータを保持します。カスタム合成のみ
deleteProductTerminatorターミネーター結果、context.data.deleteProduct{ statusCode: 204 } を返します。エラー結果/データ欠落は 500。カスタム合成のみ
deleteBatchProductsTerminatorターミネーター結果、context.data.deleteProducts{ statusCode: 204 } を返します。エラー結果/データ欠落は 500。deleteProductBatchRoute

詳細​

createProduct​

実装

params.requestBody と context.db.products を読み取り、context.data.productId を書き込みます。空でない本文を必要とし、基本エンティティを作成します。空本文/挿入失敗は 400、DB 失敗は 500 です。createProductRoute で使用されます。

createProductBatch​

実装

params.requestBody の配列と context.db.products を読み取り、context.data.productIds を書き込みます。空でない配列を必要とし、1 回の挿入で基本エンティティを作成します。無効入力/件数不一致は 400、DB 失敗は 500 です。createProductBatchRoute で使用されます。

getProductById​

実装

context.data.productId または params.requestParams.productId と context.db.products を読み取り、context.data.product を書き込みます。ID なしは 400、プロダクト不在は 404、DB 失敗は 500 です。カスタム合成のみで使用されます。

getProductsByIds​

実装

context.data.productIds または params.requestBody と context.db.products を読み取り、context.data.products を書き込みます。ID 欠落/非配列は 400、一致なしは 404、DB 失敗は 500 です。createProductBatchRoute、updateProductBatchRoute、copyProductBatchRoute で使用されます。

findProducts​

実装

params.requestQuery と context.db.products を読み取り、context.data.products を書き込みます。リクエストフィルターまたは空フィルターでクエリし、DB 失敗時は 500 を返します。カスタム合成のみです。

updateProduct​

実装

context.data.productId または params.requestParams.productId、params.requestBody、context.db.products を読み取り、context.data.updateProductId を書き込みます。updateBaseEntity で更新します。入力欠落/変更なしは 400、一致なしは 404、DB 失敗は 500 です。updateProductRoute で使用されます。

updateProductBatch​

実装

context.data.productIds または params.requestBody.ids、context.data.data または params.requestBody.data、context.db.products を読み取り、context.data.productIds を書き込みます。一致する全 ID を updateBaseEntity で更新します。入力欠落/空/変更なしは 400、一致なしは 404、DB 失敗は 500 です。updateProductBatchRoute で使用されます。

copyProduct​

実装

context.data.productId または params.requestParams.productId と context.db.products を読み取り、新しい context.data.productId を書き込みます。ソースを _id なしで基本エンティティへコピーします。ID 欠落/挿入失敗は 400、不在は 404、DB 失敗は 500 です。copyProductRoute で使用されます。

copyProductBatch​

実装

context.data.productIds または params.requestBody と context.db.products を読み取り、新しい context.data.productIds を書き込みます。見つかったプロダクトを _id なしでコピーします。無効 ID/件数不一致は 400、一致なしは 404、DB 失敗は 500 です。copyProductBatchRoute で使用されます。

deleteProduct​

実装

context.data.productId または params.requestParams.productId と context.db.products を読み取り、context.data.deleteProduct を書き込みます。1 件を削除します。ID なしは 400、削除なしは 404、DB 失敗は 500 です。deleteProductRoute で使用されます。

deleteProductBatch​

実装

context.data.productIds または params.requestBody と context.db.products を読み取り、context.data.deleteProducts を書き込みます。一致 ID を削除します。無効 ID/削除なしは 400、DB 失敗は 500 です。deleteProductBatchRoute で使用されます。

normalizeProductTerminator​

実装

Result 値と context.data.product を読み取ります。エラー結果をスローし、そうでなければ _id を削除してプロダクトを返します。データがない場合は 500 をスローします。カスタム合成のみです。

normalizeProductsListTerminator​

実装

Result 値と context.data.products を読み取ります。エラー結果をスローし、そうでなければ配列またはページネーション済み data から _id を削除してメタデータを保持します。カスタム合成のみです。

deleteProductTerminator​

実装

Result 値と context.data.deleteProduct を読み取ります。エラー結果をスローし、削除データ欠落は 500、それ以外は { statusCode: 204 } を返します。カスタム合成のみです。

deleteBatchProductsTerminator​

実装

Result 値と context.data.deleteProducts を読み取ります。エラー結果をスローし、削除データ欠落は 500、それ以外は { statusCode: 204 } を返します。deleteProductBatchRoute で使用されます。