Spaces:
Paused
Paused
| import type { MsgContext } from "../auto-reply/templating.js"; | |
| import { | |
| recordSessionMetaFromInbound, | |
| type GroupKeyResolution, | |
| type SessionEntry, | |
| updateLastRoute, | |
| } from "../config/sessions.js"; | |
| export type InboundLastRouteUpdate = { | |
| sessionKey: string; | |
| channel: SessionEntry["lastChannel"]; | |
| to: string; | |
| accountId?: string; | |
| threadId?: string | number; | |
| }; | |
| export async function recordInboundSession(params: { | |
| storePath: string; | |
| sessionKey: string; | |
| ctx: MsgContext; | |
| groupResolution?: GroupKeyResolution | null; | |
| createIfMissing?: boolean; | |
| updateLastRoute?: InboundLastRouteUpdate; | |
| onRecordError: (err: unknown) => void; | |
| }): Promise<void> { | |
| const { storePath, sessionKey, ctx, groupResolution, createIfMissing } = params; | |
| void recordSessionMetaFromInbound({ | |
| storePath, | |
| sessionKey, | |
| ctx, | |
| groupResolution, | |
| createIfMissing, | |
| }).catch(params.onRecordError); | |
| const update = params.updateLastRoute; | |
| if (!update) { | |
| return; | |
| } | |
| await updateLastRoute({ | |
| storePath, | |
| sessionKey: update.sessionKey, | |
| deliveryContext: { | |
| channel: update.channel, | |
| to: update.to, | |
| accountId: update.accountId, | |
| threadId: update.threadId, | |
| }, | |
| ctx, | |
| groupResolution, | |
| }); | |
| } | |