@ -1,7 +1,7 @@
|
||||
import prisma from '@typebot.io/lib/prisma'
|
||||
import { Prisma } from '@typebot.io/prisma'
|
||||
import { TypebotInSession } from '@typebot.io/schemas'
|
||||
import { filterVariablesWithValues } from '@typebot.io/variables/filterVariablesWithValues'
|
||||
import { filterNonSessionVariablesWithValues } from '@typebot.io/variables/filterVariablesWithValues'
|
||||
|
||||
type Props = {
|
||||
resultId: string
|
||||
@ -15,7 +15,9 @@ export const upsertResult = ({
|
||||
hasStarted,
|
||||
isCompleted,
|
||||
}: Props): Prisma.PrismaPromise<any> => {
|
||||
const variablesWithValue = filterVariablesWithValues(typebot.variables)
|
||||
const variablesWithValue = filterNonSessionVariablesWithValues(
|
||||
typebot.variables
|
||||
)
|
||||
return prisma.result.upsert({
|
||||
where: { id: resultId },
|
||||
update: {
|
||||
|
@ -149,7 +149,8 @@ const parseVariablesHeaders = (
|
||||
if (
|
||||
existingInputResultHeaders.some((existingInputResultHeader) =>
|
||||
existingInputResultHeader.variableIds?.includes(variable.id)
|
||||
)
|
||||
) ||
|
||||
variable.isSessionVariable
|
||||
)
|
||||
return existingHeaders
|
||||
|
||||
|
@ -2,27 +2,27 @@ import { z } from '../../zod'
|
||||
|
||||
export const listVariableValue = z.array(z.string().nullable())
|
||||
|
||||
export const variableSchema = z.object({
|
||||
const baseVariableSchema = z.object({
|
||||
id: z.string(),
|
||||
name: z.string(),
|
||||
isSessionVariable: z.boolean().optional(),
|
||||
})
|
||||
|
||||
export const variableSchema = baseVariableSchema.extend({
|
||||
value: z.string().or(listVariableValue).nullish(),
|
||||
})
|
||||
|
||||
/**
|
||||
* Variable when retrieved from the database
|
||||
*/
|
||||
export const variableWithValueSchema = z.object({
|
||||
id: z.string(),
|
||||
name: z.string(),
|
||||
export const variableWithValueSchema = baseVariableSchema.extend({
|
||||
value: z.string().or(listVariableValue),
|
||||
})
|
||||
|
||||
/**
|
||||
* Variable when computed or retrieved from a block
|
||||
*/
|
||||
const VariableWithUnknowValueSchema = z.object({
|
||||
id: z.string(),
|
||||
name: z.string(),
|
||||
const VariableWithUnknowValueSchema = baseVariableSchema.extend({
|
||||
value: z.unknown(),
|
||||
})
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
import { isDefined } from '@typebot.io/lib'
|
||||
import { Variable, VariableWithValue } from '../schemas'
|
||||
|
||||
export const filterVariablesWithValues = (
|
||||
export const filterNonSessionVariablesWithValues = (
|
||||
variables: Variable[]
|
||||
): VariableWithValue[] =>
|
||||
variables.filter((variable) =>
|
||||
isDefined(variable.value)
|
||||
variables.filter(
|
||||
(variable) => isDefined(variable.value) && !variable.isSessionVariable
|
||||
) as VariableWithValue[]
|
||||
|
Reference in New Issue
Block a user