メインコンテンツまでスキップ
バージョン: 0.4.2

📧 招待フィーチャーブロック

招待フィーチャーブロックは、Nodeblocksアプリケーションにおける招待管理操作のための完全な事前構成済み機能を提供します。これらのフィーチャーは、メール処理による招待の作成、取得、検索、削除のための即座に使用可能なAPIエンドポイントを作成するために、スキーマ、ルート、ハンドラーを組み合わせます。


🎯 概要

招待フィーチャーブロックは以下を目的として設計されています:

  • ユーザー招待のための完全な招待ワークフローの提供
  • 検証済み招待操作のためのスキーマとルートの組み合わせ
  • メール処理とトークン生成の自動実装
  • 招待ライフサイクル管理(作成、取得、削除)のサポート
  • 招待検索とフィルタリング機能の処理

📋 フィーチャー構造

各招待フィーチャーは一貫したコンポジションパターンに従います:

  • スキーマ: 招待入力データとパラメータの検証
  • ルート: 招待ハンドラー付きHTTPエンドポイントの提供
  • コンポジション: compose関数を使用したスキーマとルートの結合

🔧 利用可能な招待フィーチャー

createInvitationFeature

メール処理とトークン生成による新しい招待を作成します。

目的: 完全な検証とメール送信による招待作成を処理

コンポジション:

使用方法:

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

検証付き個別招待データを取得します。

目的: 適切な検証による招待情報の取得

コンポジション:

使用方法:

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

フィルタリングとページネーション付き招待の検索とリストを行います。

目的: 検索機能付き招待リストの提供

コンポジション:

使用方法:

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

適切な検証とクリーンアップによる招待を削除します。

目的: アクセス制御とクリーンアップによる招待の削除

コンポジション:

使用方法:

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