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

⚙️ アトリビューションハンドラー

アトリビューションハンドラーは、Expressミドルウェアではなくルートパイプライン関数です。params および context から RouteHandlerPayload の値を読み取り、成功した値を context.data にマージします。または、成功した Result をHTTPレスポンス記述子で終了します。

目次

ハンドラーパイプラインの役割入力 / context結果 / 動作 / エラールートでの使用先
createAttributeGroupハンドラー空でない requestBody、attributes コレクションattributeId を書き込み;基本エンティティを作成;失敗時に 400 または 500createAttributeRoute
updateAttributeGroupハンドラーアトリビューションID、空でない requestBody、attributes コレクション基本フィールドを更新し attributeId を書き込み;失敗時に 400404、または 500updateAttributeRoute
getAttributeGroupByIdハンドラーcontext または path の attributeId、attributes コレクションattributeGroup を書き込み;失敗時に 400404、または 500createAttributeRoutegetAttributeRouteupdateAttributeRoute
findAttributeGroupsハンドラーrequestQuery、attributes コレクション一致する attributeGroups を書き込み;失敗時に 500findAttributesRoute
deleteAttributeGroupハンドラーcontext または path の attributeId、attributes コレクションattributeGroupDeleted を書き込み;失敗時に 400404、または 500deleteAttributeRoute
createAttributeGroupTerminator終端器context.data.attributeGroup正規化されたデータを statusCode: 201 で返します;データがない場合は 404createAttributeRoute
normalizeAttributeGroupTerminator終端器context.data.attributeGroup_id を削除しグループを返します;データがない場合は 404getAttributeRouteupdateAttributeRoute
normalizeAttributesListTerminator終端器context.data.attributeGroups_id を削除し、ページネーションメタデータを保持します;予期せぬリストデータは 500findAttributesRoute
deleteAttributeTerminator終端器context.data.attributeGroupDeleted{ statusCode: 204 } を返します;削除フラグがない場合は 500deleteAttributeRoute

詳細

createAttributeGroup

実装

params.requestBody および context.db.attributes を読み取ります。空でないボディを要求し、createBaseEntity(requestBody) を挿入した後、後続の取得ハンドラー用に生成された attributeIdcontext.data に書き込みます。ボディがない場合または insertedId がない場合は 400;エンティティ/挿入操作中にスローされた場合は 500createAttributeRoute によって使用されます。

updateAttributeGroup

実装

params.requestParams.attributeId より前に context.data.attributeId を読み取り、さらに params.requestBody および context.db.attributes を読み取ります。IDがない場合または空のボディの場合は、スキーマが {} を許可していても 400 です。updateBaseEntity を適用し、文字列IDで更新し、再読み込みハンドラー用に attributeId を書き込みます。一致しない場合は 404、変更がない場合は 400、スローされた更新は 500updateAttributeRoute によって使用されます。

getAttributeGroupById

実装

params.requestParams.attributeId より前に context.data.attributeId を読み取り、文字列IDで context.db.attributes をクエリします。IDがない場合は 400、レコードがない場合は 404、スローされたクエリは 500 です。成功は保存されたレコードを context.data.attributeGroup に書き込みます。createAttributeRoutegetAttributeRouteupdateAttributeRoute によって使用されます。

findAttributeGroups

実装

params.requestQuery を読み取り、それをそのまま、または {}context.db.attributes.find に渡して、カーソルを配列に変換し、context.data.attributeGroups に書き込みます。スローされたクエリ/カーソル操作は 500 です;リストルートでは withPagination がこのハンドラーをラップします。findAttributesRoute によって使用されます。

deleteAttributeGroup

実装

params.requestParams.attributeId より前に context.data.attributeId を読み取り、文字列IDで context.db.attributes から削除します。IDがない場合は 400、削除件数がゼロの場合は 404、falseの結果またはスローされた削除は 500 です。成功は context.data.attributeGroupDeleted: true を書き込みます。deleteAttributeRoute によって使用されます。

createAttributeGroupTerminator

実装

失敗したパイプライン結果を再スローし、context.data.attributeGroup を読み取り、がない場合に 404 をスローします。MongoDB _id を削除し、正確なレスポンス記述子 {data: attributeGroup, statusCode: 201} を返します。createAttributeRoute によって使用されます。

normalizeAttributeGroupTerminator

実装

失敗したパイプライン結果を再スローし、context.data.attributeGroup を読み取り、がない場合に 404 をスローします。MongoDB _id を削除し、残りのグループを通常の 200 レスポンスボディとして返します。getAttributeRoute および updateAttributeRoute によって使用されます。

normalizeAttributesListTerminator

実装

失敗したパイプライン結果を再スローし、context.data.attributeGroups を読み取ります。生の配列または data が配列であるページネーションオブジェクトを受け入れます;他の形状は 500 をスローします。すべての MongoDB _id を削除し、配列または {data, metadata: {pagination}} を返します。findAttributesRoute によって使用されます。

deleteAttributeTerminator

実装

失敗したパイプライン結果を再スローし、context.data.attributeGroupDeleted を読み取り、フラグがないまたはfalseの場合に 500 をスローします。成功は正確な記述子 {statusCode: 204} を返します。deleteAttributeRoute によって使用されます。