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