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

⚙️ 注文ハンドラー

注文ハンドラーは、Nodeblocksアプリケーションで注文管理操作用のコアビジネスロジック関数を提供します。これらのハンドラーは、注文データベース操作、データ変換、レスポンスフォーマットの一般的なパターンをカプセル化します。


🎯 概要

注文ハンドラーは以下の目的で設計されています:

  • 注文ビジネスロジックをカプセル化 - 再利用可能な関数として
  • 注文データベース操作を処理 - 適切なエラー管理を含む
  • 注文データを変換 - 異なる形式間で
  • 型安全性を確保 - TypeScript統合で
  • 構成をサポート - 他の注文ブロックと

📋 注文ハンドラータイプ

注文非同期ハンドラー

非同期注文操作(データベース呼び出し、APIリクエストなど)を実行する関数。

注文同期ハンドラー

同期注文操作(データ変換、検証など)を実行する関数。

注文ターミネーターハンドラー

最終的な注文レスポンスをフォーマットして返す関数。


🔧 利用可能な注文ハンドラー

createOrder

検証とエンティティ管理を含むデータベースに新しい注文を作成します。

目的: 検証とエンティティ管理を含む注文の作成を処理します

パラメータ:

  • payload: リクエストコンテキストとデータを含むRouteHandlerPayload

戻り値: Result<RouteHandlerPayload, Error> - orderIdまたはエラーを含む成功

使用例:

// Used in composition:
compose(createOrder, terminator);

主な機能:

  • リクエストボディが存在し、空でないことを検証
  • タイムスタンプとIDでベースエンティティを作成
  • データベースに注文を挿入
  • 成功時にorderIdを返す
  • データベースエラーを適切に処理

updateOrder

検証と競合検出を含むIDによる既存の注文を更新します。

目的: 検証と競合検出を含む注文の更新を処理します

パラメータ:

  • payload: リクエストコンテキストとデータを含むRouteHandlerPayload

戻り値: Result<RouteHandlerPayload, Error> - orderIdまたはエラーを含む成功

使用例:

// Used in composition:
compose(updateOrder, terminator);

主な機能:

  • orderIdが提供されていることを検証
  • リクエストボディが存在し、空でないことを検証
  • タイムスタンプでベースエンティティを更新
  • 更新前に注文が存在するかチェック
  • 成功時にorderIdを返す
  • 見つからない場合と更新失敗を処理

getOrderById

存在検証を含むIDによる単一の注文を取得します。

目的: 存在検証を含む注文データを取得します

パラメータ:

  • payload: リクエストコンテキストとデータを含むRouteHandlerPayload

戻り値: Result<RouteHandlerPayload, Error> - orderGroupまたはエラーを含む成功

使用例:

// Used in composition:
compose(getOrderById, normalizeTerminator);

主な機能:

  • orderIdが提供されていることを検証
  • データベースでIDによる注文を検索
  • 注文が見つからない場合は404を返す
  • 成功時にorderGroupデータを返す
  • データベースエラーを適切に処理

findOrders

オプションのフィルタリングサポートを含む複数の注文を検索します。

目的: フィルタサポートを含む注文のクエリを処理します

パラメータ:

  • payload: リクエストコンテキストとデータを含むRouteHandlerPayload

戻り値: Result<RouteHandlerPayload, Error> - orderGroups配列またはエラーを含む成功

使用例:

// Used in composition:
compose(findOrders, listTerminator);

主な機能:

  • リクエストクエリからオプションのフィルタを受け入れる
  • フィルタが提供されない場合はすべての注文を返す
  • orderGroupsの配列を返す
  • データベースエラーを適切に処理

deleteOrder

安全な削除と存在検証を含むIDによる注文を削除します。

目的: 存在検証を含む注文の安全な削除を処理します

パラメータ:

  • payload: リクエストコンテキストとデータを含むRouteHandlerPayload

戻り値: Result<RouteHandlerPayload, Error> - 削除フラグまたはエラーを含む成功

使用例:

// Used in composition:
compose(deleteOrder, deleteTerminator);

主な機能:

  • orderIdが提供されていることを検証
  • データベースからIDによる注文を削除
  • 注文が見つからない場合は404を返す
  • 削除確認フラグを返す
  • データベースエラーを適切に処理

ターミネーターハンドラー

createOrderTerminator

適切なレスポンスフォーマットで注文作成を終了します。

目的: 201ステータスで成功した注文作成レスポンスをフォーマットします

パラメータ:

  • result: Result<RouteHandlerPayload, Error>

戻り値: データとstatusCodeを含むフォーマットされたレスポンスオブジェクト

使用例:

// Used in composition:
compose(createOrder, createOrderTerminator);

主な機能:

  • 結果がエラーの場合はエラーをスロー
  • コンテキストにorderGroupが存在することを検証
  • データベースの_idフィールドを削除
  • 作成用に201ステータスコードを返す

normalizeOrderTerminator

データベース固有のフィールドを削除して注文データを正規化します。

目的: APIレスポンス用に注文データをクリーンアップします

パラメータ:

  • result: Result<RouteHandlerPayload, Error>

戻り値: 正規化された注文オブジェクト

使用例:

// Used in composition:
compose(getOrderById, normalizeOrderTerminator);

主な機能:

  • 結果がエラーの場合はエラーをスロー
  • コンテキストにorderGroupが存在することを検証
  • データベースの_idフィールドを削除
  • クリーンな注文オブジェクトを返す

normalizeOrdersListTerminator

各アイテムからデータベース固有のフィールドを削除して注文リストを正規化します。

目的: APIレスポンス用に注文配列データをクリーンアップします

パラメータ:

  • result: Result<RouteHandlerPayload, Error>

戻り値: 正規化された注文オブジェクトの配列

使用例:

// Used in composition:
compose(findOrders, normalizeOrdersListTerminator);

主な機能:

  • 結果がエラーの場合はエラーをスロー
  • orderGroups配列をマップ
  • 各注文からデータベースの_idフィールドを削除
  • クリーンな注文オブジェクトの配列を返す

deleteOrderTerminator

適切なステータスコードで注文削除を終了します。

目的: 204ステータスで成功した削除レスポンスをフォーマットします

パラメータ:

  • result: Result<RouteHandlerPayload, Error>

戻り値: 204 statusCodeを含むレスポンスオブジェクト

使用例:

// Used in composition:
compose(deleteOrder, deleteOrderTerminator);

主な機能:

  • 結果がエラーの場合はエラーをスロー
  • 削除フラグが存在することを検証
  • 成功した削除用に204ステータスコードを返す