メインコンテンツまでスキップ
バージョン: 0.4.2

📧 招待スキーマブロック

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


🎯 概要

招待スキーマブロックは以下を目的として設計されています:

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

📋 スキーマ構造

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

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

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

invitationSchema

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

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

スキーマ詳細:

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

🔗 関連ドキュメント