2
0

🚸 (editor) Improve typebot updatedAt detection

Make sure the database is the single source of truth
This commit is contained in:
Baptiste Arnaud
2023-02-16 20:43:28 +01:00
parent 618eb8a882
commit 4a0dd0b3dd
4 changed files with 12 additions and 7 deletions

View File

@ -169,7 +169,11 @@ export const TypebotProvider = ({
if (dequal(omit(typebot, 'updatedAt'), omit(typebotToSave, 'updatedAt')))
return
setIsSavingLoading(true)
const { error } = await updateTypebotQuery(typebotToSave.id, typebotToSave)
const { data, error } = await updateTypebotQuery(
typebotToSave.id,
typebotToSave
)
if (data?.typebot) setLocalTypebot({ ...data.typebot })
setIsSavingLoading(false)
if (error) {
showToast({ title: error.name, description: error.message })

View File

@ -2,7 +2,7 @@ import { Typebot } from 'models'
import { sendRequest } from 'utils'
export const updateTypebotQuery = async (id: string, typebot: Typebot) =>
sendRequest({
sendRequest<{ typebot: Typebot }>({
url: `/api/typebots/${id}`,
method: 'PUT',
body: typebot,

View File

@ -5,7 +5,7 @@ export const patchTypebotQuery = async (
id: string,
typebot: Partial<Typebot>
) =>
sendRequest({
sendRequest<{ typebot: Typebot }>({
url: `/api/typebots/${id}`,
method: 'PATCH',
body: typebot,

View File

@ -94,11 +94,12 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
resultsTablePreferences: data.resultsTablePreferences ?? undefined,
} satisfies Prisma.TypebotUpdateInput
const { count } = await prisma.typebot.updateMany({
const updatedTypebot = await prisma.typebot.update({
where: { id: typebotId },
data: updates,
})
return res.send({ count })
return res.send({ typebot: updatedTypebot })
}
if (req.method === 'PATCH') {
@ -109,11 +110,11 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
})
if (!typebot) return res.status(404).send({ message: 'Typebot not found' })
const data = typeof req.body === 'string' ? JSON.parse(req.body) : req.body
const typebots = await prisma.typebot.updateMany({
const updatedTypebot = await prisma.typebot.update({
where: { id: typebotId },
data,
})
return res.send({ typebots })
return res.send({ typebot: updatedTypebot })
}
return methodNotAllowed(res)
}