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

🔍 招待スキーマ

招待スキーマは、Nodeblocksアプリケーションで招待管理操作のための検証スキーマを提供します。これらのスキーマは、招待作成、取得、管理操作のためのデータ整合性と適切な検証を確保します。


🎯 概要

招待スキーマは以下の目的で設計されています:

  • 招待データ構造の検証 - 一貫性のため
  • 必須フィールドの確保 - リクエストに含まれる必要があります
  • データ型とフォーマット検証の強制 - 検証を強制
  • フィルタリングとページネーションのサポート - 招待クエリのため
  • TypeScript統合による型安全性の提供 - 型安全性を提供

📋 スキーマ構造

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

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

🔧 利用可能な招待スキーマ

invitationSchema

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

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

スキーマ詳細:

  • Type: 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

必須フィールド検証付きで新しい招待を作成するためのスキーマ。

目的: 必須フィールド付きで招待作成リクエストを検証

スキーマ詳細:

  • 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
});

🔗 関連ドキュメント