🚀 招待機能
招待機能は、Nodeblocksアプリケーションで招待管理操作のための完全な事前構成機能を提供します。これらの機能は、スキーマ、ルート、ハンドラーを組み合わせて、メール処理付きの招待作成、取得、検索、削除のための即座に使用可能なAPIエンドポイントを作成します。
🎯 概要
招待機能は以下の目的で設計されています:
- 完全な招待ワークフローの提供 - ユーザー招待のため
- スキーマとルートの組み合わせ - 検証済み招待操作のため
- メール処理とトークン生成の自動含む - 自動的に含まれます
- 招待ライフサイクル管理のサポート - 作成、取得、削除
- 招待検索とフィルタリング機能の処理 - 検索機能
📋 機能構造
各招待機能は一貫した構成パターンに従います:
- スキーマ: 招待入力データとパラメータを検証
- ルート: 招待ハンドラー付きHTTPエンドポイントを提供
- 構成:
compose関数を使用してスキーマとルートを組み合わせ
🔧 利用可能な招待機能
createInvitationFeature
メール処理とトークン生成付きで新しい招待を作成します。
目的: 完全な検証とメール送信を含む招待作成を処理
構成:
- スキーマ:
createInvitationSchema- emailとfromIdentityIdの必須フィールドを検証 - ルート:
createInvitationRoute- POST/invitationsと招待作成パイプライン
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
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';
// With database configuration
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';
// With database configuration
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';
// With database configuration
app.use('/api', defService(partial(features.deleteInvitationFeature, [{ dataStores: db }])));
APIエンドポイント: DELETE /api/invitations/:invitationId