📦 Order ハンドラーブロック
Order ハンドラーブロックは、NodeBlocks アプリケーションの注文管理操作のためのコアビジネスロジック関数を提供します。これらのハンドラーは、注文データベース操作、データ変換、レスポンスフォーマットの共通パターンをカプセル化します。
🎯 概要
Order ハンドラーブロックは次のことを目的として設計されています:
- 再利用可能な関数で注文ビジネスロジックをカプセル化する
- 適切なエラー管理で注文データベース操作を処理する
- 異なる形式間で注文データを変換する
- TypeScript 統合で型安全を確保する
- 他の注文ブロックとの構成をサポートする
📋 Order ハンドラータイプ
Order 非同期ハンドラー
非同期の注文操作(データベース呼び出し、API リクエストなど)を実行する関数。
Order 同期ハンドラー
同期の注文操作(データ変換、検証など)を実行する関数。
Order ターミネーターハンドラー
最終的な注文レスポンスをフォーマットして返す関数。
🔧 利用可能な Order ハンドラー
createOrder
検証とエンティティ管理を使用してデータベースに新しい注文を作成します。
目的: 検証とエンティティ管理を使用して注文の作成を処理します
パラメーター:
payload
: リクエストコンテキストとデータを格納する RouteHandlerPayload
戻り値: Result<RouteHandlerPayload, Error>
- orderId を含む成功またはエラー
使用例:
// 構成で使用:
compose(createOrder, terminator);
主要機能:
- リクエストボディが存在し、空でないことを検証
- タイムスタンプと ID を使用してベースエンティティを作成
- データベースに注文を挿入
- 成功時に orderId を返す
- データベースエラーを適切に処理
updateOrder
検証と競合検出を使用して ID によって既存の注文を更新します。
目的: 検証と競合検出を使用して注文の更新を処理します
パラメーター:
payload
: リクエストコンテキストとデータを格納する RouteHandlerPayload
戻り値: Result<RouteHandlerPayload, Error>
- orderId を含む成功またはエラー
使用例:
// 構成で使用:
compose(updateOrder, terminator);
主要機能:
- orderId が提供されていることを検証
- リクエストボディが存在し、空でないことを検証
- タイムスタンプを使用してベースエンティティを更新
- 更新前に注文が存在することを確認
- 成功時に orderId を返す
- 見つからない場合と更新失敗を処理
getOrderById
存在検証を使用して ID によって単一の注文を取得します。
目的: 存在検証を使用して注文データを取得します
パラメーター:
payload
: リクエストコンテキストとデータを格納する RouteHandlerPayload
戻り値: Result<RouteHandlerPayload, Error>
- orderGroup を含む成功またはエラー
使用例:
// 構成で使用:
compose(getOrderById, normalizeTerminator);
主要機能:
- orderId が提供されていることを検証
- データベースで ID によって注文を検索
- 見つからない場合は 404 を返す
- 成功時に orderGroup データを返す
- データベースエラーを適切に処理
findOrders
オプションのフィルタリングサポートを使用して複数の注文を検索します。
目的: フィルターサポートを使用して注文のクエリを処理します
パラメーター:
payload
: リクエストコンテキストとデータを格納する RouteHandlerPayload
戻り値: Result<RouteHandlerPayload, Error>
- orderGroups 配列を含む成功またはエラー
使用例:
// 構成で使用:
compose(findOrders, listTerminator);
主要機能:
- リクエストクエリからオプションのフィルターを受け入れる
- フィルターが提供されていない場合はすべての注文を返す
- orderGroups の配列を返す
- データベースエラーを適切に処理
deleteOrder
安全な削除と存在検証を使用して ID によって注文を削除します。
目的: 存在検証を使用して注文の安全な削除を処理します
パラメーター:
payload
: リクエストコンテキストとデータを格納する RouteHandlerPayload
戻り値: Result<RouteHandlerPayload, Error>
- 削除フラグを含む成功またはエラー
使用例:
// 構成で使用:
compose(deleteOrder, deleteTerminator);
主要機能:
- orderId が提供されていることを検証
- データベースから ID によって注文を削除
- 見つからない場合は 404 を返す
- 削除確認フラグを返す
- データベースエラーを適切に処理
ターミネーターハンドラー
createOrderTerminator
適切なレスポンスフォーマットを使用して注文作成を終了します。
目的: 201 ステータスを使用して成功した注文作成レスポンスをフォーマットします
パラメーター:
result
:Result<RouteHandlerPayload, Error>
戻り値: data と statusCode を含むフォーマットされたレスポンスオブジェクト
使用例:
// 構成で使用:
compose(createOrder, createOrderTerminator);
主要機能:
- 結果がエラーの場合はエラーをスロー
- コンテキストに orderGroup が存在することを検証
- データベース _id フィールドを削除
- 作成のために 201 ステータスコードを返す
normalizeOrderTerminator
データベース固有のフィールドを削除することで注文データを正規化します。
目的: API レスポンスのために注文データをクリーンアップします
パラメーター:
result
:Result<RouteHandlerPayload, Error>
戻り値: 正規化された注文オブジェクト
使用例:
// 構成で使用:
compose(getOrderById, normalizeOrderTerminator);
主要機能:
- 結果がエラーの場合はエラーをスロー
- コンテキストに orderGroup が存在することを検証
- データベース _id フィールドを削除
- クリーンな注文オブジェクトを返す
normalizeOrdersListTerminator
各アイテムからデータベース固有のフィールドを削除することで注文リストを正規化します。
目的: API レスポンスのために注文配列データをクリーンアップします
パラメーター:
result
:Result<RouteHandlerPayload, Error>
戻り値: 正規化された注文オブジェクトの配列
使用例:
// 構成で使用:
compose(findOrders, normalizeOrdersListTerminator);
主要機能:
- 結果がエラーの場合はエラーをスロー
- orderGroups 配列をマップ
- 各注文からデータベース _id フィールドを削除
- クリーンな注文オブジェクトの配列を返す
deleteOrderTerminator
適切なステータスコードを使用して注文削除を終了します。
目的: 204 ステータスを使用して成功した削除レスポンスをフォーマットします
パラメーター:
result
:Result<RouteHandlerPayload, Error>
戻り値: 204 statusCode を含むレスポンスオブジェクト
使用例:
// 構成で使用:
compose(deleteOrder, deleteOrderTerminator);
主要機能:
- 結果がエラーの場合はエラーをスロー
- 削除フラグが存在することを検証
- 成功した削除のために 204 ステータスコードを返す