🐛 (whatsapp) Fix force create session when flow is completed at first round
This commit is contained in:
@@ -66,7 +66,6 @@ export const sendMessage = publicProcedure
|
|||||||
state: newSessionState,
|
state: newSessionState,
|
||||||
})
|
})
|
||||||
: await saveStateToDatabase({
|
: await saveStateToDatabase({
|
||||||
isFirstSave: true,
|
|
||||||
session: {
|
session: {
|
||||||
state: newSessionState,
|
state: newSessionState,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -7,19 +7,19 @@ import { createSession } from './queries/createSession'
|
|||||||
import { deleteSession } from './queries/deleteSession'
|
import { deleteSession } from './queries/deleteSession'
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
isFirstSave?: boolean
|
|
||||||
session: Pick<ChatSession, 'state'> & { id?: string }
|
session: Pick<ChatSession, 'state'> & { id?: string }
|
||||||
input: ChatReply['input']
|
input: ChatReply['input']
|
||||||
logs: ChatReply['logs']
|
logs: ChatReply['logs']
|
||||||
clientSideActions: ChatReply['clientSideActions']
|
clientSideActions: ChatReply['clientSideActions']
|
||||||
|
forceCreateSession?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export const saveStateToDatabase = async ({
|
export const saveStateToDatabase = async ({
|
||||||
isFirstSave,
|
|
||||||
session: { state, id },
|
session: { state, id },
|
||||||
input,
|
input,
|
||||||
logs,
|
logs,
|
||||||
clientSideActions,
|
clientSideActions,
|
||||||
|
forceCreateSession,
|
||||||
}: Props) => {
|
}: Props) => {
|
||||||
const containsSetVariableClientSideAction = clientSideActions?.some(
|
const containsSetVariableClientSideAction = clientSideActions?.some(
|
||||||
(action) => action.expectsDedicatedReply
|
(action) => action.expectsDedicatedReply
|
||||||
@@ -35,7 +35,9 @@ export const saveStateToDatabase = async ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const session =
|
const session =
|
||||||
id && !isFirstSave ? { state, id } : await createSession({ id, state })
|
id && !forceCreateSession
|
||||||
|
? { state, id }
|
||||||
|
: await createSession({ id, state })
|
||||||
|
|
||||||
if (!resultId) return session
|
if (!resultId) return session
|
||||||
|
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ export const resumeWhatsAppFlow = async ({
|
|||||||
})
|
})
|
||||||
|
|
||||||
await saveStateToDatabase({
|
await saveStateToDatabase({
|
||||||
isFirstSave: !session,
|
forceCreateSession: !session && isDefined(input),
|
||||||
clientSideActions: [],
|
clientSideActions: [],
|
||||||
input,
|
input,
|
||||||
logs,
|
logs,
|
||||||
|
|||||||
Reference in New Issue
Block a user