メインコンテンツまでスキップ
バージョン: 0.5.0 (最新)

📧 Invitation スキーマブロック

Invitation schema ブロックは、NodeBlocks アプリケーションにおける招待管理操作のための検証スキーマを提供します。これらのスキーマはデータ整合性を確保し、招待作成、取得、管理操作のための適切な検証を提供します。


🎯 概要

Invitation スキーマブロックは次のことを目的として設計されています:

  • 一貫性のために招待データ構造を検証する
  • リクエストに必須フィールドが存在することを確かめる
  • データタイプとフォーマット検証を強制する
  • 招待クエリのためのフィルタリングとページネーションをサポートする
  • TypeScript 統合によるタイプセーフティを提供する

📋 スキーマ構造

各招待スキーマは、一貫したパターンを従います:

  • タイプ: スキーマタイプを定義する(object, array など)
  • 必須フィールド: 必須プロパティを指定する
  • プロパティ: 個々のフィールド検証を定義する
  • 追加プロパティ: 厳密な検証動作を制御する

🔧 利用可能な Invitation スキーマ

invitationSchema

招待データの構造を定義するベース招待スキーマ。

目的: ユーザー招待のための招待データ構造を検証する

スキーマ詳細:

  • タイプ: object
  • 必須フィールド: なし(ベーススキーマ)
  • 追加プロパティ: false(厳密な検証)
  • プロパティ:
    • email: string - メールアドレス(メールフォーマット検証)
    • fromIdentityId?: string - 招待者のアイデンティティ ID
    • orgId?: string - 招待する組織の ID
    • role?: 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
});

🔗 関連ドキュメント