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

⚙️ 注文ハンドラー

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

一覧

ハンドラーパイプラインでの役割入力 / コンテキスト結果 / 動作 / エラー使用するルート
createOrderハンドラーrequestBodydb.orders基本エンティティを書き込みます。本文が空または挿入失敗は 400、データベース失敗は 500createOrderRoute
updateOrderハンドラーパス/コンテキストの注文 ID、requestBodydb.orders基本更新を書き込みます。400404、または 500updateOrderRoute
getOrderByIdハンドラーパス/コンテキストの注文 ID、db.ordersorderGroup を書き込みます。400404、または 500createOrderRoutegetOrderRouteupdateOrderRoute
findOrdersハンドラーrequestQuerydb.ordersorderGroups を書き込みます。クエリ失敗時は 500findOrdersRoute
deleteOrderハンドラーパス/コンテキストの注文 ID、db.orders削除フラグを書き込みます。400404、または 500deleteOrderRoute
createOrderTerminatorターミネーターcontext.data.orderGroup_id を削除して { data, statusCode: 201 } を返します。createOrderRoute
normalizeOrderTerminatorターミネーターcontext.data.orderGroup_id を削除して注文グループを返します。グループがない場合は 404getOrderRouteupdateOrderRoute
normalizeOrdersListTerminatorターミネーターcontext.data.orderGroupsすべての注文グループから _id を削除し、ページネーションメタデータを保持します。findOrdersRoute
deleteOrderTerminatorターミネーターcontext.data.orderGroupDeleted{ statusCode: 204 } を返します。フラグがない場合は 500deleteOrderRoute

詳細

createOrder

実装

空でない params.requestBody を必要とし、createBaseEntity を呼び出して context.db.orders に挿入し、orderId を保存します。エラーは 400 Request body is required400 Failed to create order、または 500 Unknown error creating order です。作成で使用されます。

updateOrder

実装

パスの orderId より前に context.data.orderId を使用し、空でない本文を必要とし、updateOne を呼び出します。成功時に ID を保存します。エラーは ID/本文の欠落または変更失敗が 400404 Order not found500 Failed to update order です。更新で使用されます。

getOrderById

実装

データ/パスの注文 ID を使用し、パブリックな id で検索して orderGroup を保存します。エラーは ID 欠落が 400404 Order not found500 Failed to get order です。作成取得更新で使用されます。

findOrders

実装

params.requestQuery を変更せず Mongo フィルターとして使用し、find(...).toArray() を呼び出して orderGroups を保存します。失敗は 500 Failed to find orders です。検索で使用されます。

deleteOrder

実装

データ/パスの注文 ID を使用し、パブリックな id で削除して、orderGroupDeleted: true を保存します。エラーは ID 欠落が 400、削除数ゼロが 404500 Failed to delete order です。削除で使用されます。

createOrderTerminator

実装

エラー結果をスローします。そうでなければ orderGroup を必要とし、_id を削除して { data: orderGroup, statusCode: 201 } を返します。作成で使用されます。

normalizeOrderTerminator

実装

エラー結果をスローします。そうでなければ orderGroup を必要とし、_id を削除してドキュメントを返します。取得更新で使用されます。

normalizeOrdersListTerminator

実装

配列またはページネーション済みの { data, metadata } を受け取り、各 _id を削除してページネーションメタデータを保持します。他の形状では 500 Unknown error normalizing orders list をスローします。検索で使用されます。

deleteOrderTerminator

実装

エラー結果をスローし、orderGroupDeleted を必要とし、{ statusCode: 204 } を返します。フラグがない場合は 500 Unknown error deleting order です。削除で使用されます。