2
0

🐛 (sheets) Make sure update cells do not overwrite existing…

This commit is contained in:
Baptiste Arnaud
2024-06-27 11:25:43 +02:00
parent 898ed529b0
commit 1431898b82
5 changed files with 41 additions and 10 deletions

View File

@@ -3,7 +3,7 @@ import {
GoogleSheetsUpdateRowOptions,
ChatLog,
} from '@typebot.io/schemas'
import { parseCellValues } from './helpers/parseCellValues'
import { parseNewCellValuesObject } from './helpers/parseNewCellValuesObject'
import { getAuthenticatedGoogleDoc } from './helpers/getAuthenticatedGoogleDoc'
import { ExecuteIntegrationResponse } from '../../../types'
import { matchFilter } from './helpers/matchFilter'
@@ -36,8 +36,6 @@ export const updateRow = async (
spreadsheetId: options.spreadsheetId,
})
const parsedValues = parseCellValues(variables)(options.cellsToUpsert)
await doc.loadInfo()
const sheet = doc.sheetsById[Number(sheetId)]
const rows = await sheet.getRows()
@@ -55,13 +53,24 @@ export const updateRow = async (
return { outgoingEdgeId, logs }
}
const parsedValues = parseNewCellValuesObject(variables)(
options.cellsToUpsert,
sheet.headerValues
)
try {
for (const filteredRow of filteredRows) {
const rowIndex = filteredRow.rowNumber - 2 // -1 for 1-indexing, -1 for header row
const cellsRange = filteredRow.a1Range.split('!').pop()
await sheet.loadCells(cellsRange)
const rowIndex = filteredRow.rowNumber - 1
for (const key in parsedValues) {
rows[rowIndex].set(key, parsedValues[key])
const cellToUpdate = sheet.getCell(
rowIndex,
parsedValues[key].columnIndex
)
cellToUpdate.value = parsedValues[key].value
}
await rows[rowIndex].save()
await sheet.saveUpdatedCells()
}
logs.push({