⚙️ 組織ハンドラー
組織ハンドラーは Express ミドルウェアではなく、ルートパイプライン関数です。params と context から RouteHandlerPayload 値を読み取り、成功した値を context.data にマージするか、成功した Result を HTTP レスポンスディスクリプターで終了します。これらのエクスポートは、前のパイプラインステップの後に HTTP レスポンスを整形するターミネーターです。
一覧
| ハンドラー | パイプラインでの役割 | 入力 / コンテキスト | 結果 / 動作 / エラー | 使用するルート |
|---|---|---|---|---|
normalizeOrganizationTerminator | ターミネーター | context.data.organization | _id を削除して組織を返します。組織がない場合は 500。 | createOrganizationRoute、getOrganizationRoute、updateOrganizationRoute、updateOrganizationAsAdminRoute |
normalizeOrganizationsListTerminator | ターミネーター | context.data.organizations | 配列またはページネーション済みの data から _id を削除します。不正または欠落した値は 500。 | findOrganizationsRoute |
deleteOrganizationTerminator | ターミネーター | context.data.hasDeletedOrganization | 削除に成功した場合は {statusCode: 204}、それ以外は 500 を返します。 | deleteOrganizationRoute |
normalizeOrganizationMemberExistenceTerminator | ターミネーター | context.data.isMemberOfOrganization | {isMemberOfOrganization} を返します。値の欠落は 500。 | checkOrganizationMemberExistenceRoute |
normalizeOrganizationMembersListTerminator | ターミネーター | context.data.organizationMembers | メンバー配列またはページネーション済み形状を返します。不正または欠落した値は 500。 | findOrganizationMembersRoute |
deleteOrganizationMemberTerminator | ターミネーター | context.data.hasDeletedOrganizationMember | メンバー削除に成功した場合は {statusCode: 204}、それ以外は 500 を返します。 | deleteOrganizationMemberRoute |
upsertOrganizationMembersTerminator | ターミネーター | context.data.hasUpsertedOrganizationMembers | upsert に成功した場合は {statusCode: 204}、それ以外は 500 を返します。 | upsertOrganizationMembersRoute |
詳細
normalizeOrganizationTerminator
実装
パイプライン結果がエラーの場合は result.error をスローします。成功時には context.data.organization を読み取り、データベース専用の _id を削除して、残りのパブリック組織オブジェクトを返します。organization がない場合は NodeblocksError(500, 'Unknown error normalizing organization', 'normalizeOrganizationTerminator') をスローします。createOrganizationRoute、getOrganizationRoute、updateOrganizationRoute、updateOrganizationAsAdminRoute で使用されます。
normalizeOrganizationsListTerminator
実装
パイプライン結果がエラーの場合は result.error をスローします。context.data.organizations を読み取ります。配列の場合は各項目から _id を削除し、ページネーション済み値の場合は各項目から _id を削除した {data, metadata: {pagination}} を返します。配列でも配列の data を持つオブジェクトでもない値は NodeblocksError(500, 'Unknown error normalizing organizations list', 'normalizeOrganizationsListTerminator') をスローします。findOrganizationsRoute で使用されます。
deleteOrganizationTerminator
実装
パイプライン結果がエラーの場合は result.error をスローします。真の context.data.hasDeletedOrganization を必要とし、{statusCode: 204} を返します。値の欠落または false は NodeblocksError(500, 'Unknown error deleting organization', 'deleteOrganizationTerminator') をスローします。最終ターミネーターである deleteOrganizationRoute で使用されます。
normalizeOrganizationMemberExistenceTerminator
実装
パイプライン結果がエラーの場合は result.error をスローします。context.data.isMemberOfOrganization を読み取り、{isMemberOfOrganization} を返します。false は有効ですが、null または undefined は NodeblocksError(500, 'Unknown error normalizing organization member existence', 'normalizeOrganizationMemberExistenceTerminator') をスローします。checkOrganizationMemberExistenceRoute で使用されます。
normalizeOrganizationMembersListTerminator
実装
パイプライン結果がエラーの場合は result.error をスローします。context.data.organizationMembers を読み取り、配列の場合は直接返します。ページネーション済み値の場合は {data, metadata: {pagination}} を返します。どちらでもない値は NodeblocksError(500, 'Unknown error normalizing organization members', 'normalizeOrganizationMembersListTerminator') をスローします。findOrganizationMembersRoute で使用されます。
deleteOrganizationMemberTerminator
実装
パイプライン結果がエラーの場合は result.error をスローします。真の context.data.hasDeletedOrganizationMember を必要とし、{statusCode: 204} を返します。値の欠落または false は NodeblocksError(500, 'Unknown error deleting organization member', 'deleteOrganizationMemberTerminator') をスローします。最終ターミネーターである deleteOrganizationMemberRoute で使用されます。
upsertOrganizationMembersTerminator
実装
パイプライン結果がエラーの場合は result.error をスローします。真の context.data.hasUpsertedOrganizationMembers を必要とし、{statusCode: 204} を返します。値の欠落または false は NodeblocksError(500, 'Unknown error when trying to upsert organization members', 'upsertOrganizationMembersTerminator') をスローします。最終ターミネーターである upsertOrganizationMembersRoute で使用されます。