📧 Invitation スキーマブロック
Invitation schema ブロックは、NodeBlocks アプリケーションにおける招待管理操作のための検証スキーマを提供します。これらのスキーマはデータ整合性を確保し、招待作成、取得、管理操作のための適切な検証を提供します。
🎯 概要
Invitation スキーマブロックは次のことを目的として設計されています:
- 一貫性のために招待データ構造を検証する
- リクエストに必須フィールドが存在することを確かめる
- データタイプとフォーマット検証を強制する
- 招待クエリのためのフィルタリングとページネーションをサポートする
- TypeScript 統合によるタイプセーフティを提供する
📋 スキーマ構造
各招待スキーマは、一貫したパターンを従います:
- タイプ: スキーマタイプを定義する(object, array など)
- 必須フィールド: 必須プロパティを指定する
- プロパティ: 個々のフィールド検証を定義する
- 追加プロパティ: 厳密な検証動作を制御する
🔧 利用可能な Invitation スキーマ
invitationSchema
招待データの構造を定義するベース招待スキーマ。
目的: ユーザー招待のための招待データ構造を検証する
スキーマ詳細:
- タイプ:
object
- 必須フィールド: なし(ベーススキーマ)
- 追加プロパティ:
false
(厳密な検証) - プロパティ:
email: string
- メールアドレス(メールフォーマット検証)fromIdentityId?: string
- 招待者のアイデンティティ IDorgId?: string
- 招待する組織の IDrole?: string
- 組織内のユーザーの役割
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { invitationSchema } = schemas;
const validate = ajv.compile(invitationSchema as SchemaDefinition);
const isValid = validate({
email: 'user@example.com',
fromIdentityId: 'identity123',
orgId: 'org456',
role: 'member'
});
createInvitationSchema
必須フィールド検証を使用した新しい招待作成のためのスキーマ。
目的: 必須フィールドを使用した招待作成リクエストを検証する
スキーマ詳細:
- タイプ:
object
- 必須フィールド:
email
,fromIdentityId
- オプションのフィールド:
orgId
,role
- 追加プロパティ:
false
(厳密な検証) - Content-Type:
application/json
- リクエストボディ:
必須
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { createInvitationSchema } = schemas;
const createSchema = createInvitationSchema({});
const validate = ajv.compile(createSchema.schemas as SchemaDefinition);
const isValid = validate({
email: 'user@example.com',
fromIdentityId: 'identity123',
orgId: 'org456',
role: 'member'
});
getInvitationSchema
ID によって単一の招待を取得するためのスキーマ。
目的: GET 招待エンドポイントのパスパラメーターを検証する
スキーマ詳細:
- タイプ:
object
- 必須フィールド:
invitationId
(パスパラメーター) - パラメーター:
invitationId
(パスパラメーター) - 追加プロパティ:
false
(厳密な検証)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { getInvitationSchema } = schemas;
const getSchema = getInvitationSchema({});
const validate = ajv.compile(getSchema.schemas as SchemaDefinition);
const isValid = validate({
invitationId: 'inv123'
});
deleteInvitationSchema
ID によって招待を削除するためのスキーマ。
目的: DELETE 招待エンドポイントのパスパラメーターを検証する
スキーマ詳細:
- タイプ:
object
- 必須フィールド:
invitationId
(パスパラメーター) - パラメーター:
invitationId
(パスパラメーター) - 追加プロパティ:
false
(厳密な検証)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { deleteInvitationSchema } = schemas;
const deleteSchema = deleteInvitationSchema({});
const validate = ajv.compile(deleteSchema.schemas as SchemaDefinition);
const isValid = validate({
invitationId: 'inv123'
});
findInvitationsSchema
オプションのフィルタリングとページネーションを使用して招待を検索するためのスキーマ。
目的: ページネーションを使用した招待検索のクエリパラメーターを検証する
スキーマ詳細:
- タイプ:
object
- 必須フィールド: なし(すべてのクエリパラメーターがオプション)
- 追加プロパティ:
false
(厳密な検証) - パラメーター: フィルタリングとページネーションのためのクエリパラメーター
- クエリパラメーター:
email?: string
- メールによるフィルター(メールフォーマット)fromIdentityId?: string
- 招待者のアイデンティティ ID によるフィルターorgId?: string
- 組織 ID によるフィルターrole?: string
- 役割によるフィルターpage?: number
- ページネーションページ番号limit?: number
- ページネーション制限
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { findInvitationsSchema } = schemas;
const findSchema = findInvitationsSchema({});
const validate = ajv.compile(findSchema.schemas as SchemaDefinition);
const isValid = validate({
email: 'user@example.com',
page: 1,
limit: 10
});
🔗 関連ドキュメント
- Invitation ドメイン概要 - 招待ドメインの概要
- Invitation ハンドラー - 招待ハンドラー関数
- Invitation ルート - 招待ルートエンドポイント