diff --git a/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/GoogleSheetsSettingsBody.tsx b/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/GoogleSheetsSettingsBody.tsx index edbdfe61c..60cf02461 100644 --- a/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/GoogleSheetsSettingsBody.tsx +++ b/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettingsBody/GoogleSheetsSettingsBody.tsx @@ -56,24 +56,29 @@ export const GoogleSheetsSettingsBody = ({ onOptionsChange({ ...options, sheetId }) const handleActionChange = (action: GoogleSheetsAction) => { + const baseOptions = { + credentialsId: options.credentialsId, + spreadsheetId: options.spreadsheetId, + sheetId: options.sheetId, + } switch (action) { case GoogleSheetsAction.GET: { const newOptions: GoogleSheetsGetOptions = { - ...options, + ...baseOptions, ...defaultGoogleSheetsGetOptions, } return onOptionsChange({ ...newOptions }) } case GoogleSheetsAction.INSERT_ROW: { const newOptions: GoogleSheetsInsertRowOptions = { - ...options, + ...baseOptions, ...defaultGoogleSheetsInsertOptions, } return onOptionsChange({ ...newOptions }) } case GoogleSheetsAction.UPDATE_ROW: { const newOptions: GoogleSheetsUpdateRowOptions = { - ...options, + ...baseOptions, ...defaultGoogleSheetsUpdateOptions, } return onOptionsChange({ ...newOptions }) diff --git a/packages/scripts/fixTypebots.ts b/packages/scripts/fixTypebots.ts index 676e0a590..3850233b9 100644 --- a/packages/scripts/fixTypebots.ts +++ b/packages/scripts/fixTypebots.ts @@ -8,11 +8,11 @@ import { Group, InputBlockType, PublicTypebot, - publicTypebotSchema, Theme, Typebot, + typebotSchema, } from 'models' -import { isNotDefined } from 'utils' +import { isDefined, isNotDefined } from 'utils' import { promptAndSetEnvironment } from './utils' import { detailedDiff } from 'deep-object-diff' @@ -78,18 +78,22 @@ const fixBlocks = ( }) as Block[] } -const fixBrokenBlockOption = (option: BlockOptions, blockType: BlockType) => +const fixBrokenBlockOption = (options: BlockOptions, blockType: BlockType) => removeUndefinedFromObject({ - ...option, + ...options, sheetId: - 'sheetId' in option && option.sheetId - ? option.sheetId.toString() + 'sheetId' in options && isDefined(options.sheetId) + ? options.sheetId.toString() + : undefined, + step: + 'step' in options && isDefined(options.step) ? options.step : undefined, + value: + 'value' in options && isDefined(options.value) + ? options.value : undefined, - step: 'step' in option && option.step ? option.step : undefined, - value: 'value' in option && option.value ? option.value : undefined, retryMessageContent: fixRetryMessageContent( //@ts-ignore - option.retryMessageContent, + options.retryMessageContent, blockType ), }) as BlockOptions @@ -121,7 +125,18 @@ const fixTypebots = async () => { log: [{ emit: 'event', level: 'query' }, 'info', 'warn', 'error'], }) - const typebots = await prisma.publicTypebot.findMany() + const twoDaysAgo = new Date() + twoDaysAgo.setDate(twoDaysAgo.getDate() - 2) + + const typebots = await prisma.typebot.findMany({ + where: { + updatedAt: { + gte: twoDaysAgo, + }, + }, + }) + + writeFileSync('logs/typebots.json', JSON.stringify(typebots)) const total = typebots.length let totalFixed = 0 @@ -135,7 +150,7 @@ const fixTypebots = async () => { (progress / total) * 100 )}%) (${totalFixed} fixed typebots)` ) - const parser = publicTypebotSchema.safeParse({ + const parser = typebotSchema.safeParse({ ...typebot, updatedAt: new Date(typebot.updatedAt), createdAt: new Date(typebot.createdAt), @@ -143,18 +158,15 @@ const fixTypebots = async () => { if ('error' in parser) { const fixedTypebot = { ...fixTypebot(typebot as Typebot | PublicTypebot), - updatedAt: new Date(typebot.updatedAt), + updatedAt: new Date(), createdAt: new Date(typebot.createdAt), } - publicTypebotSchema.parse(fixedTypebot) + typebotSchema.parse(fixedTypebot) fixedTypebots.push(fixedTypebot) totalFixed += 1 diffs.push({ id: typebot.id, - failedObject: resolve( - parser.error.issues[0].path.join('.'), - fixedTypebot - ), + failedObject: resolve(parser.error.issues[0].path.join('.'), typebot), ...detailedDiff(typebot, fixedTypebot), }) } @@ -184,26 +196,4 @@ const fixTypebots = async () => { await prisma.$transaction(queries) } -// export const parseZodError = (parser: any) => { -// if ('error' in parser) { -// console.log( -// parser.error.issues.map((issue) => -// JSON.stringify({ -// message: issue.message, -// path: issue.path, -// }) -// ) -// ) -// writeFileSync( -// 'failedObject.json', -// JSON.stringify( -// resolve(parser.error.issues[0].path.join('.'), fixedTypebot) -// ) -// ) -// writeFileSync('failedTypebot.json', JSON.stringify(fixedTypebot)) -// writeFileSync('issue.json', JSON.stringify(parser.error.issues)) -// exit() -// } -// } - fixTypebots()