💬 チャットブロック
チャットブロックは、Nodeblocksアプリケーションでリアルタイム通信の包括的な機能を提供します。これらのブロックは、チャネル、メッセージ、サブスクリプションを含むチャットライフサイクル操作を処理します。
🎯 概要
チャットブロックは以下の目的で設計されています:
- チャットチャネルの管理 - 完全なCRUD操作
- メッセージ交換の処理 - リアルタイム通信
- セキュアなファイル添付のサポート - 署名付きURLと悪意のあるファイルタイプフィルタリング
- リアルタイムでのメッセージストリーミング - WebSocketとMongoDB変更ストリーム経由
- 読み取り状態の追跡 - ユーザーがチャネルで読み取ったメッセージをマーク
- メッセージテンプレート管理の提供 - 再利用可能なコンテンツ
- 通知用のサブスクリプション管理の提供 - 通知管理
- マルチチャネル通信のサポート - 複数チャネル対応
- 包括的なコントロールによるチャット管理の有効化 - 管理機能
📦 ブロックタイプ
🔍 Schemas
チャットデータバリデーション用のJSON Schema定義:
- ChatChannelIcon: チャネルアイコンメタデータ用のTypeScript型
- chatChannelSchema: ベースチャネルエンティティ構造
- createChatChannelSchema: チャネル作成バリデーション
- updateChatChannelSchema: チャネル変更
- getChatChannelSchema: チャネル取得
- deleteChatChannelSchema: チャネル削除
- findChatChannelsSchema: フィルタリングとページネーション付きチャネル検索
- getChannelMessagesSchema: チャネルメッセージ取得バリデーション
- chatMessageSchema: メッセージエンティティ構造
- chatMessageAttachmentSchema: objectIdとtypeによるメッセージ添付バリデーション
- createChatMessageAttachmentSchema: 既存メッセージにファイルを追加するための添付作成バリデーション
- deleteChatMessageAttachmentSchema: messageIdとattachmentIdパスパラメータによる添付削除バリデーション
- createChatMessageSchema: 添付サポート付きメッセージ作成バリデーション
- updateChatMessageSchema: メッセージ変更
- getChatMessageSchema: メッセージ取得
- deleteChatMessageSchema: メッセージ削除
- findChatMessagesSchema: フィルタリングとページネーション付きメッセージ検索
- channelIdQueryParameter: チャネルID用のWebSocketクエリパラメータ
- streamChatMessagesSchema: リアルタイムメッセージストリーミングバリデーション
- chatMessageTemplateSchema: メッセージテンプレートエンティティ構造
- createChatMessageTemplateSchema: メッセージテンプレート作成バリデーション
- getChatMessageTemplateSchema: メッセージテンプレート取得バリデーション
- updateChatMessageTemplateSchema: メッセージテンプレート変更
- deleteChatMessageTemplateSchema: メッセージテンプレート削除バリデーション
- findChatMessageTemplatesSchema: フィルタリングとページネーション付きメッセージテンプレート検索
- findChatMessageTemplatesForOrganizationSchema: ページネーション付き組織スコープのメッセージテンプレート検索
- chatSubscriptionSchema: サブスクリプションエンティティ構造
- createChatSubscriptionSchema: サブスクリプション作成バリデーション
- getChatSubscriptionSchema: サブスクリプション取得
- deleteChatSubscriptionSchema: サブスクリプション削除
- findChatSubscriptionsSchema: フィルタリングとページネーション付きサブスクリプション検索
- chatChannelReadStateSchema: チャネル読み取り状態エンティティ構造
- upsertChatChannelReadStateSchema: チャネル読み取り状態アップサートバリデーション
🔧 Blocks
チャット操作用の純粋なビジネスロジック関数:
- Channel Operations:
getChannelMessagesByChannelId- 特定チャネルのすべてのメッセージを取得、generateChatChannelIconUploadUrl- チャネルアイコン画像用の署名付きアップロードURLを生成、normalizeChatChannel- アイコンファイル処理付きチャットチャネルデータの正規化 - Message Operations:
createChatMessage- 添付付きの新しいチャットメッセージを作成、getChatMessageById- IDによるメッセージ取得、findChatMessages- フィルタリング付きチャットメッセージ検索 - Message Normalization:
normalizeChatMessage- 単一メッセージの正規化、normalizeChatMessages- 複数メッセージの正規化 - Message Attachments:
generateChatMessageAttachmentUploadUrl- セキュリティフィルタリング付きメッセージ添付用の署名付きアップロードURLを生成、createChatMessageAttachment- 既存メッセージに添付を追加、getChatMessageAttachmentById- IDによる特定添付の取得、deleteChatMessageAttachment- メッセージとストレージから添付を削除 - Attachment Normalization:
normalizeChatMessageAttachment- 署名付きURL付き単一添付の正規化(メインの正規化関数に統合) - Message Streaming:
streamChatMessages- MongoDB変更ストリーム経由でリアルタイムメッセージをストリーミング、normalizeChatMessage- メッセージオブジェクトの正規化、normalizeChatMessageStream- メッセージストリームの正規化 - Message Templates:
createChatMessageTemplate- 新しいチャットメッセージテンプレートを作成、getChatMessageTemplateById- 一意の識別子によるテンプレート取得、updateChatMessageTemplate- 既存のチャットメッセージテンプレートを更新、findChatMessageTemplates- フィルタに一致するチャットメッセージテンプレート検索、buildFilterToGetChatMessageTemplatesByOrganizationId- テンプレートクエリ用の組織固有フィルタの構築、deleteChatMessageTemplate- データベースからチャットメッセージテンプレートを削除 - Channel Read States:
createChatChannelReadState- 読み取り状態レコードを作成、updateChatChannelReadState- 読み取り状態レコードを更新、findChatChannelReadStates- フィルタリング付き読み取り状態検索、buildChatChannelReadStateQuery- 読み取り状態クエリの構築、buildLastReadMessageQuery- 最後に読み取ったメッセージクエリの構築、buildCreateChatChannelReadStatePayload- 作成ペイロードの構築、buildUpdateChatChannelReadStatePayload- 更新ペイロードの構築 - Error Classes: ChatChannelBlockError, ChatChannelUnknownError, ChatMessageBlockError, ChatMessageDbError, ChatMessageNotFoundBlockError, ChatMessageUnexpectedDBError, ChatMessageAttachmentNotFoundBlockError, ChatMessageUnauthorizedError, ChatMessageForbiddenError, ChatMessageNotFoundError, ChatMessageInvalidMessageError, ChatMessageUnknownError, ChatMessageBadRequestError, ChatChannelReadStateBlockError, ChatChannelReadStateNotFoundError, ChatChannelReadStateDatabaseError, ChatChannelReadStateUnknownError
⚙️ Handlers
チャット操作のコアビジネスロジック:
- Channel Operations: createChatChannel, getChatChannelById, findChatChannels, updateChatChannel, deleteChatChannel
- Channel Terminator Functions: createChatChannelTerminator, normalizeChatChannelTerminator, normalizeChatChannelsListTerminator, deleteChatChannelTerminator
- Message Operations: createChatMessage, getChatMessageById, findChatMessages, updateChatMessage, deleteChatMessage
- Message Terminator Functions: createChatMessageTerminator, normalizeChatMessageTerminator, normalizeChatMessagesListTerminator, deleteChatMessageTerminator
- Subscription Operations: createChatSubscription, getChatSubscriptionById, findChatSubscriptions, deleteChatSubscription
- Subscription Terminator Functions: createChatSubscriptionTerminator, normalizeChatSubscriptionTerminator, normalizeChatSubscriptionsListTerminator, deleteChatSubscriptionTerminator
🛣️ Routes
チャット操作のHTTPおよびWebSocketエンドポイント定義:
- Channel Routes: createChatChannelRoute, getChatChannelRoute, findChatChannelsRoute, updateChatChannelRoute, deleteChatChannelRoute, getChannelMessagesRoute, getChatChannelIconUploadUrlRoute
- Message Routes: createChatMessageRoute, getChatMessageRoute, findChatMessagesRoute, updateChatMessageRoute, deleteChatMessageRoute, getChatMessageAttachmentUploadUrlRoute, createChatMessageAttachmentRoute, deleteChatMessageAttachmentRoute, streamChatMessagesRoute (WebSocket)
- Message Template Routes: createChatMessageTemplateRoute, getChatMessageTemplateRoute, updateChatMessageTemplateRoute, findChatMessageTemplatesRoute, findChatMessageTemplatesForOrganizationRoute, deleteChatMessageTemplateRoute
- Subscription Routes: createChatSubscriptionRoute, getChatSubscriptionRoute, findChatSubscriptionsRoute, deleteChatSubscriptionRoute
- Channel Read State Routes: upsertChatChannelReadStateRoute
🚀 Features
簡単な統合用の構成されたチャット機能:
- Channel Features: createChannelFeature, getChannelFeature, findChannelsFeature, updateChannelFeature, deleteChannelFeature, getChannelMessagesFeature, getChannelIconUploadUrlFeature
- Message Features: createChatMessageFeature, getChatMessageFeature, findChatMessagesFeature, updateChatMessageFeature, deleteChatMessageFeature, getChatMessageAttachmentUrlFeature, createChatMessageAttachmentFeature, deleteChatMessageAttachmentFeature, streamChatMessagesFeature (WebSocket)
- Message Template Features: createChatMessageTemplateFeature, getChatMessageTemplateFeature, updateChatMessageTemplateFeature, findChatMessageTemplatesFeature, findChatMessageTemplatesForOrganizationFeature, deleteChatMessageTemplateFeature
- Subscription Features: createChatSubscriptionFeature, getChatSubscriptionFeature, findChatSubscriptionsFeature, deleteChatSubscriptionFeature
- Channel Read State Features: upsertChatChannelReadStateFeature
✅ Validators
チャット操作のバリデーション関数:
- channelExists: データベース内にチャットチャネルが存在することをバリデーション
- hasSubscription: アイデンティティがチャネルにサブスクライブされていることをバリデーション
- ownsSubscription: サブスクライブされたアイデンティティによるサブスクリプション所有権をバリデーション
- ownsChannel: アイデンティティによるチャネル所有権をバリデーション
- ownsMessage: 送信者によるメッセージ所有権をバリデーション
- hasOrganizationAccessToMessageTemplate: メッセージテンプレートへの組織ロールベースアクセスをバリデーション
- validateChannelAccess (deprecated): レガシーアクセスバリデーター;
ownsChannelに置き換え - validateMessageAccess (deprecated): レガシーアクセスバリデーター;
ownsMessageに置き換え
🔗 関連ドキュメント
- チャットスキーマ - チャットデータバリデーションと契約
- チャットハンドラー - チャットビジネスロジック関数
- チャットルート - チャットHTTPエンドポイント定義
- チャット機能 - 完全なチャット機能ドキュメント
- チャットバリデーター - チャットバリデーション関数