🛣️ 招待ルート
招待ルートは、Nodeblocksアプリケーションで招待管理操作のための事前設定HTTPエンドポイントを提供します。これらのルートは、ハンドラー、バリデーター、ミドルウェアを組み合わせて、適切な認証、認可、エラー処理を含む完全なAPIエンドポイントを作成します。
🎯 概要
招待ルートは以下の目的で設計されています:
- 完全なAPIエンドポイントの提供 - 招待管理操作のため
- ハンドラーとバリデーターの組み合わせ - セキュアな操作のため
- 認証と認可チェックの含む - チェックを含みます
- 関数型構成パターンのサポート - パターンをサポート
- ロギングとエラー管理の自動処理 - 自動的に処理
📋 ルート構造
各招待ルートは一貫したパターンに従います:
- HTTPメソッド: 操作タイプを定義(GET、POST、PATCH、DELETE)
- パス: パラメータ付きエンドポイントURLを指定
- ハンドラー: ビジネスロジック用の構成関数チェーン
- バリデーター: 認証と認可チェック
🔧 利用可能な招待ルート
createInvitationRoute
POST /invitations経由で新しい招待を作成します。
目的: メール送信付きで招待作成を処理
ルート詳細:
- Method:
POST - Path:
/invitations - Authentication: 必須(Bearerトークン)
ハンドラー: createInvitation, getInvitationById, buildInvitationOnetimeTokenPayload, generateOnetimeToken, sendInvitationEmail, createInvitationTerminator
バリデーター: isAuthenticated, checkIdentityType(['admin'])
使用例:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.createInvitationRoute);
findInvitationsRoute
GET /invitations経由ですべての招待を取得します。
目的: ページネーション付きで招待を一覧表示
ルート詳細:
- Method:
GET - Path:
/invitations - Authentication: 必須(Bearerトークン)
ハンドラー: findInvitations, normalizeInvitationsListTerminator
バリデーター: isAuthenticated, checkIdentityType(['admin'])
使用例:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.findInvitationsRoute);
getInvitationByIdRoute
GET /invitations/:invitationId経由でIDで特定の招待を取得します。
目的: 招待データを取得
ルート詳細:
- Method:
GET - Path:
/invitations/:invitationId - Authentication: 必須(Bearerトークン)
ハンドラー: getInvitationById, normalizeInvitationTerminator
バリデーター: isAuthenticated, checkIdentityType(['admin'])
使用例:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.getInvitationByIdRoute);
deleteInvitationRoute
DELETE /invitations/:invitationId経由でIDで特定の招待を削除します。
目的: 招待を削除
ルート詳細:
- Method:
DELETE - Path:
/invitations/:invitationId - Authentication: 必須(Bearerトークン)
ハンドラー: deleteInvitation, deleteInvitationTerminator
バリデーター: isAuthenticated, checkIdentityType(['admin'])
使用例:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.deleteInvitationRoute);