🛒 注文ブロック
注文ブロックは、Nodeblocksアプリケーションで注文管理操作の包括的な機能を提供します。これらのブロックは、作成、取得、更新、組織スコープのクエリを含む注文ライフサイクル操作を処理します。
🎯 概要
注文ブロックは以下の目的で設計されています:
- 注文ライフサイクルを管理 - 完全なCRUD操作を含む
- 注文クエリを処理 - 柔軟なフィルタリングとページネーション
- 組織スコープをサポート - マルチテナント注文管理用
- 型安全性を提供 - 包括的なエラーハンドリング
- 構成を有効化 - 複雑な注文機能の構築用
📦 ブロックタイプ
🔍 スキーマ
注文データ検証用のJSON Schema定義:
- orderSchema: ベース注文エンティティ構造
- createOrderSchema: 注文作成検証
- updateOrderSchema: オプションフィールド検証を含む注文変更
- getOrderSchema: 注文取得検証
- deleteOrderSchema: 注文削除検証
- findOrdersSchema: フィルタリングとページネーションを含む注文検索
🔧 ブロック
注文操作用の純粋なビジネスロジック関数:
- findOrders: フィルタリングとページネーションで注文を取得
- OrderBlockError: 注文関連ブロック操作の基本エラークラス
- OrderDbBlockError: 注文ブロック操作用のデータベース固有エラークラス
⚙️ ハンドラー
注文操作用のコアビジネスロジック:
- createOrder: 検証を含む注文作成
- updateOrder: 検証と競合検出を含む注文更新
- getOrderById: 存在検証を含む注文データ取得
- findOrders: 注文検索とフィルタリング
- deleteOrder: 安全な削除と存在検証を含む注文削除
- createOrderTerminator: 成功した注文作成応答をフォーマット
- normalizeOrderTerminator: データベース固有のフィールドを削除して注文データを正規化
- normalizeOrdersListTerminator: データベース固有のフィールドを削除して注文リストを正規化
- deleteOrderTerminator: 成功した削除応答をフォーマット
🛣️ ルート
注文操作用のHTTPエンドポイント定義:
- createOrderRoute: POST
/orders- 作成ハンドラー付き - getOrderRoute: GET
/orders/:orderId- アクセス制御付き - findOrdersRoute: GET
/orders- 検索とページネーション付き - updateOrderRoute: PATCH
/orders/:orderId- アクセス制御付き - deleteOrderRoute: DELETE
/orders/:orderId- アクセス制御付き - findOrdersByOrganizationIdRoute: GET
/orders/organizations/:organizationId- 組織ロール検証付き
🚀 機能
スキーマ、ルート、ハンドラーを組み合わせた完全な注文管理機能:
- createOrderFeature: 検証とルーティングを含む注文作成
- updateOrderFeature: 検証とルーティングを含む注文更新
- getOrderFeature: 適切な検証を含む注文取得
- findOrdersFeature: フィルタリングとページネーションを含む注文検索
- deleteOrderFeature: アクセス制御とクリーンアップを含む注文削除
- findOrdersByOrganizationIdFeature: ロールベースアクセス制御を含む組織スコープの注文取得
✅ バリデーター
注文操作用の検証関数:
- ownsOrder: 認証されたアイデンティティによる注文所有権を検証
- validateOrderAccess: 許可されたサブジェクトとトークン情報に基づいて注文アクセスを検証(非推奨)