From b966ed221d7164ebc5c5e7fa0a0146fea590c7ad Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Tue, 10 Oct 2023 12:59:04 +0200 Subject: [PATCH] Fix bulk delete --- packages/server/src/api/controllers/row/internal.ts | 6 +++++- packages/server/src/utilities/rowProcessor/index.ts | 12 ++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/server/src/api/controllers/row/internal.ts b/packages/server/src/api/controllers/row/internal.ts index f33df4536f..c838208a3b 100644 --- a/packages/server/src/api/controllers/row/internal.ts +++ b/packages/server/src/api/controllers/row/internal.ts @@ -156,7 +156,10 @@ export async function destroy(ctx: UserCtx) { } const table = await sdk.tables.getTable(row.tableId) // update the row to include full relationships before deleting them - row = await outputProcessing(table, row, { squash: false }) + row = await outputProcessing(table, row, { + squash: false, + skipBBReferences: true, + }) // now remove the relationships await linkRows.updateLinks({ eventType: linkRows.EventType.ROW_DELETE, @@ -190,6 +193,7 @@ export async function bulkDestroy(ctx: UserCtx) { // they need to be the full rows (including previous relationships) for automations const processedRows = (await outputProcessing(table, rows, { squash: false, + skipBBReferences: true, })) as Row[] // remove the relationships first diff --git a/packages/server/src/utilities/rowProcessor/index.ts b/packages/server/src/utilities/rowProcessor/index.ts index d6aa5e682a..7995fc2545 100644 --- a/packages/server/src/utilities/rowProcessor/index.ts +++ b/packages/server/src/utilities/rowProcessor/index.ts @@ -201,9 +201,14 @@ export async function inputProcessing( export async function outputProcessing( table: Table, rows: T, - opts: { squash?: boolean; preserveLinks?: boolean } = { + opts: { + squash?: boolean + preserveLinks?: boolean + skipBBReferences?: boolean + } = { squash: true, preserveLinks: false, + skipBBReferences: false, } ): Promise { let safeRows: Row[] @@ -230,7 +235,10 @@ export async function outputProcessing( attachment.url = objectStore.getAppFileUrl(attachment.key) }) } - } else if (column.type == FieldTypes.BB_REFERENCE) { + } else if ( + !opts.skipBBReferences && + column.type == FieldTypes.BB_REFERENCE + ) { for (let row of enriched) { row[property] = await processOutputBBReferences( row[property],