📐 Invitation schemas
Invitation スキーマは招待オブジェクトと 4 つのパブリック Invitation ルートが受け入れる入力を検証します。
目録
| エクスポート | リクエスト場所 | 契約 |
|---|---|---|
invitationSchema | N/A | 厳密な再利用可能な招待オブジェクト。 |
createInvitationSchema | ボディ | 必須の JSON 招待作成ボディ。 |
getInvitationSchema | パス | 必須の招待 ID。 |
deleteInvitationSchema | パス | 必須の招待 ID。 |
findInvitationsSchema | クエリ | オプションのフィルターとページネーション。 |
詳細
invitationSchema
定義
再利用可能な厳密な招待入力形状で、完全な保存エンティティスキーマではありません。additionalProperties: false を持ち;以下のフィールドのみが createInvitationSchema によって展開される際に受け入れられます。createInvitation は検証後に設定された保留中 status と id、createdAt、updatedAt のような基本エンティティフィールドを追加します;読み取りターミネーターは後でデータベース _id を削除します。ルートで使用: 直接使用なし。feature で使用: 直接使用なし。
| 場所 | フィールド | 型 | 必須 | 制約 |
|---|---|---|---|---|
| N/A | email | string | いいえ | email 形式。 |
| N/A | fromIdentityId | string | いいえ | 招待者のアイデンティティ ID。 |
| N/A | orgId | string | いいえ | オrganization ID。 |
| N/A | role | string | いいえ | 招待ロール。 |
完全なソースを表示
export const invitationSchema: SchemaDefinition = {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
email: {format: 'email', type: 'string'},
fromIdentityId: {type: 'string'},
orgId: {type: 'string'},
role: {type: 'string'},
},
type: 'object',
};
createInvitationSchema
定義
必須の OpenAPI application/json ボディは invitationSchema を展開し、additionalProperties: false を保持し、email と fromIdentityId を要求します。現在のボディバリデータはこのスキーマを直接選択し、着信 HTTP Content-Type を検査しません;解析されたボディを検証し、スキーマ失敗時に 400 Validation Error を報告します。ルートで使用: createInvitationRoute。feature で使用: createInvitationFeature。
| 場所 | フィールド | 型 | 必須 | 制約 |
|---|---|---|---|---|
| ボディ | email | string | はい | email 形式。 |
| ボディ | fromIdentityId | string | はい | 招待者のアイデンティティ ID。 |
| ボディ | orgId | string | いいえ | オrganization ID。 |
| ボディ | role | string | いいえ | 招待ロール。 |
完全なソースを表示
export const createInvitationSchema = withSchema({
requestBody: {
content: {
'application/json': {
schema: {
...invitationSchema,
required: ['email', 'fromIdentityId'],
},
},
},
required: true,
},
});
getInvitationSchema
定義
invitationId パスパラメータを検証します。ルートで使用: getInvitationByIdRoute。feature で使用: getInvitationFeature。
| 場所 | フィールド | 型 | 必須 | 制約 |
|---|---|---|---|---|
| パス | invitationId | string | はい | 形式やパターンは適用されません。 |
完全なソースを表示
export const getInvitationSchema = withSchema({
parameters: [{...invitationIdPathParameter}],
});
deleteInvitationSchema
定義
invitationId パスパラメータを検証します。ルートで使用: deleteInvitationRoute。feature で使用: deleteInvitationFeature。
| 場所 | フィールド | 型 | 必須 | 制約 |
|---|---|---|---|---|
| パス | invitationId | string | はい | 形式やパターンは適用されません。 |
完全なソースを表示
export const deleteInvitationSchema = withSchema({
parameters: [{...invitationIdPathParameter}],
});
findInvitationsSchema
定義
オプションの招待フィルターと共有ページネーションパラメータを展開します。ルートで使用: findInvitationsRoute。feature で使用: findInvitationsFeature。
| 場所 | フィールド | 型 | 必須 | 制約 |
|---|---|---|---|---|
| クエリ | email | string | いいえ | email 形式。 |
| クエリ | fromIdentityId | string | いいえ | 招待者アイデンティティフィルター。 |
| クエリ | orgId | string | いいえ | オrganization フィルター。 |
| クエリ | role | string | いいえ | ロールフィルター。 |
| クエリ | page | integer | いいえ | 共有ページネーション、1–1000。 |
| クエリ | limit | integer | いいえ | 共有ページネーション、1–50。 |
page と limit は paginationQueryParametersSchema から来ます;ルートのページネーションラッパーはこれらを消費し、リストターミネーターはページネーションメタデータを公開します。完全なソースを表示