📧 Invitation 機能ブロック
Invitation feature ブロックは、NodeBlocks アプリケーションにおける招待管理操作のための完全な事前合成機能を備えています。これらの機能は、スキーマ、ルート、ハンドラーを組み合わせて、メール処理を伴う招待作成、取得、検索、削除のための即時使用可能な API エンドポイントを作成します。
🎯 概要
Invitation 機能ブロックは次のことを目的として設計されています:
- ユーザー招待のための完全な招待ワークフローを提供する
- 検証された招待操作のためのスキーマとルートを組み合わせる
- メール処理とトークン生成を自動的に含む
- 招待ライフサイクル管理をサポートする(作成、取得、削除)
- 招待検索とフィルタリング機能を処理する
📋 機能構造
各招待機能は、一貫した構成パターンを従います:
- スキーマ: 招待入力データとパラメーターを検証します
- ルート: 招待ハンドラー付きの HTTP エンドポイントを提供します
- 構成:
compose
関数を使用してスキーマとルートを組み合わせます
🔧 利用可能な Invitation 機能
createInvitationFeature
メール処理とトークン生成を使用して新しい招待を作成します。
目的: 完全な検証とメール送信を使用して招待作成を処理する
構成:
- スキーマ:
createInvitationSchema
- メールと fromIdentityId の必須フィールドを検証する - ルート:
createInvitationRoute
- 招待作成パイプラインを持つ POST/invitations
使用例:
import { features } from '@nodeblocks/backend-sdk';
// 直接使用(ハンドラーで dataStores が必要)
app.use('/api', defService(features.createInvitationFeature));
// データベース構成を使用
app.use('/api', defService(partial(features.createInvitationFeature, [{ dataStores: db }])));
API エンドポイント: POST /api/invitations
getInvitationFeature
検証を使用して個々の招待データを取得します。
目的: 適切な検証を使用して招待情報を取得する
構成:
- スキーマ:
getInvitationSchema
- パスパラメーターを検証する - ルート:
getInvitationByIdRoute
- 取得ハンドラーを持つ GET/invitations/:invitationId
使用例:
import { features } from '@nodeblocks/backend-sdk';
// 直接使用(ハンドラーで dataStores が必要)
app.use('/api', defService(features.getInvitationFeature));
// データベース構成を使用
app.use('/api', defService(partial(features.getInvitationFeature, [{ dataStores: db }])));
API エンドポイント: GET /api/invitations/:invitationId
findInvitationsFeature
フィルタリングとページネーションを使用して招待を検索してリストします。
目的: 検索機能を使用した招待リストを提供する
構成:
- スキーマ:
findInvitationsSchema
- フィルタリングのためのクエリパラメーターを検証する - ルート:
findInvitationsRoute
- 検索とページネーションを持つ GET/invitations
使用例:
import { features } from '@nodeblocks/backend-sdk';
// 直接使用(ハンドラーで dataStores が必要)
app.use('/api', defService(features.findInvitationsFeature));
// データベース構成を使用
app.use('/api', defService(partial(features.findInvitationsFeature, [{ dataStores: db }])));
API エンドポイント: GET /api/invitations
deleteInvitationFeature
適切な検証とクリーンアップを使用して招待を削除します。
目的: アクセスコントロールとクリーンアップを使用して招待を削除する
構成:
- スキーマ:
deleteInvitationSchema
- パスパラメーターを検証する - ルート:
deleteInvitationRoute
- 削除パイプラインを持つ DELETE/invitations/:invitationId
使用例:
import { features } from '@nodeblocks/backend-sdk';
// 直接使用(ハンドラーで dataStores が必要)
app.use('/api', defService(features.deleteInvitationFeature));
// データベース構成を使用
app.use('/api', defService(partial(features.deleteInvitationFeature, [{ dataStores: db }])));
API エンドポイント: DELETE /api/invitations/:invitationId