メインコンテンツまでスキップ
バージョン: 0.13.0 (Previous)

⚙️ チャットハンドラー

チャットハンドラーはルートパイプライン関数であり、Express ミドルウェアではありません。これらは params から RouteHandlerPayload の値を読み取り、context.data に成功した値をマージするか、成功した Result をHTTPレスポンス記述子で終了します。

一覧

ハンドラーパイプラインの役割入力 / コンテキスト結果 / 動作 / エラールートで使用
createChatChannelハンドラーrequestBodydb.chatChannelsベースエンティティを作成し、channelIdchannel を書き込みます; 空のボディまたは挿入失敗で 400、データベース失敗で 500createChatChannelRoute
getChatChannelByIdハンドラーcontext.data.channelId またはパス channelIddb.chatChannelschannel を書き込みます; ID なしで 400、存在しない場合 404、データベース失敗で 500createChatChannelRoutegetChatChannelRouteupdateChatChannelRoute
findChatChannelsハンドラーrequestQuerydb.chatChannelsクエリフィルター(デフォルトは {})から channels を書き込みます; データベース失敗で 500findChatChannelsRoute
updateChatChannelハンドラーパス/コンテキストチャンネルID、requestBody、オプションの fileStorageDriverチャンネルを更新し、置き換えられたアイコンをストレージから削除し、channelId を書き込みます; 無効または失敗した作業で 400404、または 500updateChatChannelRoute
deleteChatChannelハンドラーパス/コンテキストチャンネルID、db.chatChannels、オプションの fileStorageDriverチャンネルと既存のアイコンを削除し、deleteChatChannel: true を書き込みます; 失敗で 400404、または 500deleteChatChannelRoute
createChatChannelTerminatorターミネーターcontext.data.channel、オプションの fileStorageDriver作成されたチャンネルを正規化し、{ data, statusCode: 201 } を返します; 不足したデータまたは正規化失敗はエラーになります。createChatChannelRoute
normalizeChatChannelTerminatorターミネーターcontext.data.channel、オプションの fileStorageDriver正規化されたチャンネルを返します; 不足したチャンネルデータは 500 を生成します。getChatChannelRouteupdateChatChannelRoute
normalizeChatChannelsListTerminatorターミネーターラウまたはページネーションされた context.data.channels、オプションの fileStorageDriver各チャンネルを正規化しながらページネーションメタデータを保持します; 無効なパイプラインデータは 500 を生成します。findChatChannelsRoute
deleteChatChannelTerminatorターミネーターcontext.data.deleteChatChannel{ statusCode: 204 } を返します; 成功状態の不足は 500 を生成します。deleteChatChannelRoute
getChatMessageByIdハンドラーcontext.data.messageId またはパス messageIddb.chatMessageschatMessage を書き込みます; ID なしで 400、存在しない場合 404、データベース失敗で 500getChatMessageRouteupdateChatMessageRoute
findChatMessagesハンドラーrequestQuerydb.chatMessagescreatedAt で降順にソートし、chatMessages を書き込みます; データベース失敗で 500カスタム合成のみ
updateChatMessageハンドラーパス/コンテキストメッセージID、requestBodydb.chatMessagesエンティティを更新し、messageId を書き込みます; 失敗で 400404、または 500updateChatMessageRoute
deleteChatMessageハンドラーパス/コンテキストメッセージID、db.chatMessagesエンティティを削除し、deleteChatMessage: true を書き込みます; 失敗で 400404、または 500deleteChatMessageRoute
createChatMessageTerminatorターミネーターcontext.data.chatMessage_id を削除し、{ data, statusCode: 201 } を返します; 不足したデータは 500 を生成します。カスタム合成のみ
normalizeChatMessageTerminatorターミネーターcontext.data.chatMessage_id を削除し、メッセージを返します; 不足したデータは 500 を生成します。カスタム合成のみ
normalizeChatMessagesListTerminatorターミネーターラウまたはページネーションされた context.data.chatMessages各メッセージから _id を削除し、ページネーションメタデータを保持します; 無効なデータは 500 を生成します。カスタム合成のみ
deleteChatMessageTerminatorターミネーターcontext.data.deleteChatMessage{ statusCode: 204 } を返します; 成功状態の不足は 500 を生成します。deleteChatMessageRoute
createChatSubscriptionハンドラーrequestBodydb.subscriptionsベースエンティティを作成し、subscriptionIdsubscription を書き込みます; 失敗で 400 または 500createChatSubscriptionRoute
getChatSubscriptionByIdハンドラーcontext.data.subscriptionId またはパス subscriptionIddb.subscriptionssubscription を書き込みます; ID なしで 400、存在しない場合 404、データベース失敗で 500createChatSubscriptionRoutegetChatSubscriptionRoute
findChatSubscriptionsハンドラーrequestQuerydb.subscriptionsクエリフィルター(デフォルトは {})から subscriptions を書き込みます; データベース失敗で 500findChatSubscriptionsRoute
deleteChatSubscriptionハンドラーパス/コンテキストサブスクリプションID、db.subscriptionsエンティティを削除し、deleteChatSubscription: true を書き込みます; 失敗で 400404、または 500deleteChatSubscriptionRoute
createChatSubscriptionTerminatorターミネーターcontext.data.subscription_id を削除し、{ data, statusCode: 201 } を返します; 不足したデータは 500 を生成します。createChatSubscriptionRoute
normalizeChatSubscriptionTerminatorターミネーターcontext.data.subscription_id を削除し、サブスクリプションを返します; 不足したデータは 500 を生成します。getChatSubscriptionRoute
normalizeChatSubscriptionsListTerminatorターミネーターラウまたはページネーションされた context.data.subscriptions各項目から _id を削除し、ページネーションメタデータを保持します; 無効なパイプラインデータは 500 を生成します。findChatSubscriptionsRoute
deleteChatSubscriptionTerminatorターミネーターcontext.data.deleteChatSubscription{ statusCode: 204 } を返します; 成功状態の不足は 500 を生成します。deleteChatSubscriptionRoute

詳細

createChatChannel

実装

params.requestBody を読み取り、不足または空のボディを 400 で拒否し、context.db.chatChannels にベースエンティティを作成し、channelId と作成された channel の両方をパイプラインデータにマージします。不足した insertedId400 です; 投げられたデータベースエラーは 500 になります。createChatChannelRoute によって使用されます。

getChatChannelById

実装

まず context.data.channelId からチャンネルIDを読み取り、次に params.requestParams.channelId から読み取り、context.db.chatChannels からフェッチし、ドキュメントを channel としてマージします。不足したIDは 400 を返し、不足したチャンネルは 404 を返し、データベース失敗は 500 を返します。createChatChannelRoutegetChatChannelRoute、および updateChatChannelRoute によって使用されます。

findChatChannels

実装

params.requestQuery || {} を MongoDB フィルターとして直接使用し、結果の配列を channels としてマージします; クエリ失敗は 500 を返します。findChatChannelsRoute は正規化の前にページネーションでラップします。

updateChatChannel

実装

以前のデータまたはパスからチャンネルIDを読み取り、空でないボディを必要とします。以前のチャンネルを読み取り、updateBaseEntity を適用し、存在する場合は置き換えられたアイコンを fileStorageDriver 経由で削除し、次の検索のために channelId をマージします。不足した入力には 400、チャンネルが存在しない場合は 404、データベースまたはファイル削除失敗には 500 を返します。updateChatChannelRoute によって使用されます。

deleteChatChannel

実装

以前のデータまたはパスからチャンネルIDを読み取り、チャンネルを読み取って削除し、適用される場合は fileStorageDriver を通じてアイコンを削除し、deleteChatChannel: true を書き込みます。不足したIDは 400 を返し、不足したチャンネルは 404 を返し、データベースまたはストレージ失敗は 500 を返します。deleteChatChannelRoute によって使用されます。

createChatChannelTerminator

実装

context.data.channel が必要で、fileStorageDriver でオプションのアイコンを正規化し、{ data: normalizedChannel, statusCode: 201 } を返します。以前のエラーをスローし、パイプラインデータが不足しているか正規化が失敗した場合は 500 を報告します。createChatChannelRoute の最終ステップ。

normalizeChatChannelTerminator

実装

context.data.channel が必要で、fileStorageDriver でオプションのアイコンを正規化し、通常のレスポンスボディとして正規化されたエンティティを返します。以前のエラーをスローし、不足したパイプラインデータには 500 を送出します。getChatChannelRoute および updateChatChannelRoute によって使用されます。

normalizeChatChannelsListTerminator

実装

生のチャンネル配列またはページネーションされた { data, ...metadata } 形状の両方を受け取り、各アイコンを正規化し、正規化されたデータと同じ外側の形状を返します。無効なパイプラインデータは 500 を生成します; 正規化エラーは伝播されます。findChatChannelsRoute によって使用されます。

deleteChatChannelTerminator

実装

context.data.deleteChatChannel が必要で、{ statusCode: 204 } を返し、空の成功レスポンスを生成します。成功状態の不足は 500 を生成します。deleteChatChannelRoute の最終ステップ。

getChatMessageById

実装

まず context.data.messageId からメッセージIDを読み取り、次にパスから読み取り、context.db.chatMessages からフェッチし、ドキュメントを chatMessage としてマージします。不足したIDは 400 を返し、不足したメッセージは 404 を返し、データベース失敗は 500 を返します。getChatMessageRoute および updateChatMessageRoute によって使用されます。

findChatMessages

実装

params.requestQuery を MongoDB フィルターとして使用し、結果を createdAt で降順にソートして chatMessages としてマージします; データベース失敗は 500 を返します。エクスポートされたチャットルートはこのハンドラーを使用していません; 現在の一覧と既読状態ルートは同名のブロックエクスポートを呼び出します。

updateChatMessage

実装

以前のデータまたはパスからメッセージIDを読み取り、空でないリクエストボディを必要とし、updateBaseEntity で更新し、messageId をマージします。不足した入力には 400、メッセージが一致しない場合は 404、データベース失敗には 500 を返します。updateChatMessageRoute によって使用されます。

deleteChatMessage

実装

以前のデータまたはパスからメッセージIDを読み取り、context.db.chatMessages から削除し、deleteChatMessage: true を書き込みます。ID なしで 400 を返し、何も削除されない場合は 404 を返し、データベース失敗で 500 を返します。deleteChatMessageRoute によって使用されます。

createChatMessageTerminator

実装

context.data.chatMessage が必要で、MongoDB _id を削除し、{ data: chatMessage, statusCode: 201 } を返します; 不足したデータは 500 を生成します。このレガシーターミネーターは公開されていますが、エクスポートされたチャットルートでは使用されていません。

normalizeChatMessageTerminator

実装

context.data.chatMessage が必要で、MongoDB _id を削除し、残されたエンティティを返します; 不足したデータは 500 を生成します。この公開レガシーターミネーターはカスタム合成のみ利用可能です。

normalizeChatMessagesListTerminator

実装

ラウまたはページネーションされた context.data.chatMessages コレクションを受け取り、各メッセージから _id を削除し、ページネーションメタデータを保持します。無効なパイプラインデータは 500 を生成します。現在エクスポートされたチャットルートでは使用されていません。

deleteChatMessageTerminator

実装

context.data.deleteChatMessage が必要で、{ statusCode: 204 } を返します; 成功状態の不足は 500 を生成します。deleteChatMessageRoute の最終ステップ。

createChatSubscription

実装

空でないボディが必要で、context.db.subscriptions にベースエンティティを作成し、subscriptionIdsubscription をマージします。不足したボディまたは挿入失敗は 400 を返します; データベース失敗は 500 を返します。createChatSubscriptionRoute によって使用されます。

getChatSubscriptionById

実装

以前のデータまたはパスからサブスクリプションIDを読み取り、context.db.subscriptions からフェッチし、subscription をマージします。不足したIDは 400 を返し、不足したサブスクリプションは 404 を返し、データベース失敗は 500 を返します。createChatSubscriptionRoute および getChatSubscriptionRoute によって使用されます。

findChatSubscriptions

実装

params.requestQuery || {} を MongoDB フィルターとして使用し、結果の配列を subscriptions としてマージします; データベース失敗は 500 を返します。findChatSubscriptionsRoute はページネーションでラップします。

deleteChatSubscription

実装

以前のデータまたはパスからサブスクリプションIDを読み取り、削除し、deleteChatSubscription: true を書き込みます。不足したIDは 400 を返し、不足したサブスクリプションは 404 を返し、データベース失敗は 500 を返します。deleteChatSubscriptionRoute によって使用されます。

createChatSubscriptionTerminator

実装

context.data.subscription が必要で、MongoDB _id を削除し、{ data: subscription, statusCode: 201 } を返します; 不足したデータは 500 を生成します。createChatSubscriptionRoute の最終ステップ。

normalizeChatSubscriptionTerminator

実装

context.data.subscription が必要で、MongoDB _id を削除し、エンティティを返します; 不足したデータは 500 を生成します。getChatSubscriptionRoute の最終ステップ。

normalizeChatSubscriptionsListTerminator

実装

ラウまたはページネーションされたサブスクリプションコレクションを受け取り、各項目から _id を削除し、ページネーションメタデータを保持します。無効なパイプラインデータは 500 を生成します。findChatSubscriptionsRoute の最終ステップ。

deleteChatSubscriptionTerminator

実装

context.data.deleteChatSubscription が必要で、{ statusCode: 204 } を返します; 成功状態の不足は 500 を生成します。deleteChatSubscriptionRoute の最終ステップ。