📧 招待スキーマブロック
招待スキーマブロックは、Nodeblocksアプリケーションにおける招待管理操作のための検証スキーマを提供します。これらのスキーマは、招待の作成、取得、管理操作に対するデータ整合性と適切な検証を確保します。
🎯 概要
招待スキーマブロックは以下を目的として設計されています:
- 一貫性のための招待データ構造の検証
- リクエストに必須フィールドが存在することの確保
- データタイプとフォーマット検証の強制
- 招待クエリのためのフィルタリングとページネーションのサポート
- TypeScript統合による型安全性の提供
📋 スキーマ構造
各招待スキーマは一貫したパターンに従います:
- タイプ: スキーマタイプの定義(object、arrayなど)
- 必須フィールド: 必須プロパティの指定
- プロパティ: 個別フィールド検証の定義
- 追加プロパティ: 厳密な検証動作の制御
🔧 利用可能な招待スキーマ
invitationSchema
招待データの構造を定義するベース招待スキーマ。
目的: ユーザー招待のための招待データ構造を検証
スキーマ詳細:
- タイプ:
object
- 必須フィールド: なし(ベーススキーマ)
- 追加プロパティ:
false
(厳密な検証) - プロパティ:
email: string
- メールアドレス(メールフォーマット検証)fromUserId?: string
- 招待者ユーザーのIDorgId?: string
- 招待先組織のIDrole?: string
- 組織内でのユーザーの役割
使用方法:
import { schemas } from '@nodeblocks/backend-sdk';
const { invitationSchema } = schemas;
const baseInvitationSchema = invitationSchema({});
const validate = ajv.compile(baseInvitationSchema.schemas as SchemaDefinition);
const isValid = validate({
email: 'user@example.com',
fromUserId: 'user123',
orgId: 'org456',
role: 'member'
});
createInvitationSchema
必須フィールド検証による新しい招待作成のためのスキーマ。
目的: 必須フィールド付き招待作成リクエストの検証
スキーマ詳細:
- タイプ:
object
- 必須フィールド:
email
,fromUserId
- オプションフィールド:
orgId
,role
- 追加プロパティ:
false
(厳密な検証) - コンテンツタイプ:
application/json
- リクエストボディ:
required
使用方法:
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',
fromUserId: 'user123',
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
- メールでフィルタ(メールフォーマット)fromUserId?: 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
});