⚙️ 注文ハンドラー
注文ハンドラーは Express ミドルウェアではなく、ルートパイプライン関数です。params と context から RouteHandlerPayload 値を読み取り、成功した値を context.data にマージするか、成功した Result を HTTP レスポンスディスクリプターで終了します。
一覧
| ハンドラー | パイプラインでの役割 | 入力 / コンテキスト | 結果 / 動作 / エラー | 使用するルート |
|---|---|---|---|---|
createOrder | ハンドラー | requestBody、db.orders | 基本エンティティを書き込みます。本文が空または挿入失敗は 400、データベース失敗は 500。 | createOrderRoute |
updateOrder | ハンドラー | パス/コンテキストの注文 ID、requestBody、db.orders | 基本更新を書き込みます。400、404、または 500。 | updateOrderRoute |
getOrderById | ハンドラー | パス/コンテキストの注文 ID、db.orders | orderGroup を書き込みます。400、404、または 500。 | createOrderRoute、getOrderRoute、updateOrderRoute |
findOrders | ハンドラー | requestQuery、db.orders | orderGroups を書き込みます。クエリ失敗時は 500。 | findOrdersRoute |
deleteOrder | ハンドラー | パス/コンテキストの注文 ID、db.orders | 削除フラグを書き込みます。400、404、または 500。 | deleteOrderRoute |
createOrderTerminator | ターミネーター | context.data.orderGroup | _id を削除して { data, statusCode: 201 } を返します。 | createOrderRoute |
normalizeOrderTerminator | ターミネーター | context.data.orderGroup | _id を削除して注文グループを返します。グループがない場合は 404。 | getOrderRoute、updateOrderRoute |
normalizeOrdersListTerminator | ターミネーター | context.data.orderGroups | すべての注文グループから _id を削除し、ページネーションメタデータを保持します。 | findOrdersRoute |
deleteOrderTerminator | ターミネーター | context.data.orderGroupDeleted | { statusCode: 204 } を返します。フラグがない場合は 500。 | deleteOrderRoute |
詳細
createOrder
実装
空でない params.requestBody を必要とし、createBaseEntity を呼び出して context.db.orders に挿入し、orderId を保存します。エラーは 400 Request body is required、400 Failed to create order、または 500 Unknown error creating order です。作成で使用されます。
updateOrder
実装
パスの orderId より前に context.data.orderId を使用し、空でない本文を必要とし、updateOne を呼び出します。成功時に ID を保存します。エラーは ID/本文の欠落または変更失敗が 400、404 Order not found、500 Failed to update order です。更新で使用されます。
getOrderById
実装
findOrders
実装
params.requestQuery を変更せず Mongo フィルターとして使用し、find(...).toArray() を呼び出して orderGroups を保存します。失敗は 500 Failed to find orders です。検索で使用されます。
deleteOrder
実装
データ/パスの注文 ID を使用し、パブリックな id で削除して、orderGroupDeleted: true を保存します。エラーは ID 欠落が 400、削除数ゼロが 404、500 Failed to delete order です。削除で使用されます。
createOrderTerminator
実装
エラー結果をスローします。そうでなければ orderGroup を必要とし、_id を削除して { data: orderGroup, statusCode: 201 } を返します。作成で使用されます。
normalizeOrderTerminator
normalizeOrdersListTerminator
実装
配列またはページネーション済みの { data, metadata } を受け取り、各 _id を削除してページネーションメタデータを保持します。他の形状では 500 Unknown error normalizing orders list をスローします。検索で使用されます。
deleteOrderTerminator
実装
エラー結果をスローし、orderGroupDeleted を必要とし、{ statusCode: 204 } を返します。フラグがない場合は 500 Unknown error deleting order です。削除で使用されます。