🔍 招待スキーマ
招待スキーマは、Nodeblocksアプリケーションで招待管理操作のための検証スキーマを提供します。これらのスキーマは、招待作成、取得、管理操作のためのデータ整合性と適切な検証を確保します。
🎯 概要
招待スキーマは以下の目的で設計されています:
- 招待データ構造の検証 - 一貫性のため
- 必須フィールドの確保 - リクエストに含まれる必要があります
- データ型とフォーマット検証の強制 - 検証を強制
- フィルタリングとページネーションのサポート - 招待クエリのため
- TypeScript統合による型安全性の提供 - 型安全性を提供
📋 スキーマ構造
各招待スキーマは一貫したパターンに従います:
- Type: スキーマタイプを定義(object、arrayなど)
- 必須フィールド: 必須プロパティを指定
- プロパティ: 個別フィールド検証を定義
- 追加プロパティ: 厳密な検証動作を制御
🔧 利用可能な招待スキーマ
invitationSchema
招待データの構造を定義する基本招待スキーマ。
目的: ユーザー招待のための招待データ構造を検証
スキーマ詳細:
- Type:
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
必須フィールド検証付きで新しい招待を作成するためのスキーマ。
目的: 必須フィールド付きで招待作成リクエストを検証
スキーマ詳細:
- Type:
object - 必須フィールド:
email,fromIdentityId - オプションフィールド:
orgId,role - 追加プロパティ:
false(厳密な検証) - Content-Type:
application/json - Request Body:
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',
fromIdentityId: 'identity123',
orgId: 'org456',
role: 'member'
});
getInvitationSchema
IDで単一の招待を取得するためのスキーマ。
目的: GET招待エンドポイントのパスパラメータを検証
スキーマ詳細:
- Type:
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招待エンドポイントのパスパラメータを検証
スキーマ詳細:
- Type:
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
オプショナルなフィルタリングとページネーション付きで招待を検索するためのスキーマ。
目的: ページネーション付き招待検索のクエリパラメータを検証
スキーマ詳細:
- Type:
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
});