2023-09-20 15:26:52 +02:00
|
|
|
import prisma from '@typebot.io/lib/prisma'
|
2023-09-29 09:59:38 +02:00
|
|
|
import { sessionStateSchema } from '@typebot.io/schemas'
|
2024-05-15 17:47:38 +02:00
|
|
|
import { deleteSession } from './deleteSession'
|
2022-11-29 10:02:40 +01:00
|
|
|
|
2023-09-22 17:12:15 +02:00
|
|
|
export const getSession = async (sessionId: string) => {
|
2023-08-24 07:48:30 +02:00
|
|
|
const session = await prisma.chatSession.findUnique({
|
2022-11-29 10:02:40 +01:00
|
|
|
where: { id: sessionId },
|
2024-04-18 09:38:22 +02:00
|
|
|
select: { id: true, state: true, updatedAt: true, isReplying: true },
|
2023-08-24 07:48:30 +02:00
|
|
|
})
|
2024-05-15 17:47:38 +02:00
|
|
|
if (!session?.state) return null
|
|
|
|
if (Object.keys(session.state).length === 0) {
|
|
|
|
await deleteSession(session.id)
|
|
|
|
return null
|
|
|
|
}
|
|
|
|
return {
|
|
|
|
...session,
|
|
|
|
state: sessionStateSchema.parse(session.state),
|
|
|
|
}
|
2022-11-29 10:02:40 +01:00
|
|
|
}
|