diff --git a/packages/server/src/api/controllers/row/index.ts b/packages/server/src/api/controllers/row/index.ts index d177fdc8a9..7f6f494621 100644 --- a/packages/server/src/api/controllers/row/index.ts +++ b/packages/server/src/api/controllers/row/index.ts @@ -146,7 +146,7 @@ async function deleteRows(ctx: UserCtx) { const rowDeletes: Row[] = await processDeleteRowsRequest(ctx) deleteRequest.rows = rowDeletes - let { rows } = await quotas.addQuery( + const { rows } = await quotas.addQuery( () => pickApi(tableId).bulkDestroy(ctx), { datasourceId: tableId, diff --git a/packages/server/src/api/routes/row.ts b/packages/server/src/api/routes/row.ts index b79347a871..ac0cd2b4a4 100644 --- a/packages/server/src/api/routes/row.ts +++ b/packages/server/src/api/routes/row.ts @@ -350,7 +350,7 @@ router ctx.params.tableId = utils.extractViewInfoFromID( ctx.params.viewId ).tableId - next() + return next() }, rowController.destroy ) diff --git a/packages/server/src/api/routes/tests/row.spec.ts b/packages/server/src/api/routes/tests/row.spec.ts index b7df9777d4..38399c81cd 100644 --- a/packages/server/src/api/routes/tests/row.spec.ts +++ b/packages/server/src/api/routes/tests/row.spec.ts @@ -1225,6 +1225,41 @@ describe("/rows", () => { expectStatus: 404, }) }) + + it("should be able to delete multiple rows", async () => { + const table = await config.createTable(userTable()) + const tableId = table._id! + const view = await config.api.viewV2.create({ + tableId, + columns: { + name: { visible: true }, + address: { visible: true }, + }, + }) + + const rows = [ + await config.createRow(), + await config.createRow(), + await config.createRow(), + ] + const rowUsage = await getRowUsage() + const queryUsage = await getQueryUsage() + + await config.api.viewV2.row.delete(view.id, { + rows: [rows[0], rows[2]], + }) + + await assertRowUsage(rowUsage - 2) + await assertQueryUsage(queryUsage + 1) + + await config.api.row.get(tableId, rows[0]._id!, { + expectStatus: 404, + }) + await config.api.row.get(tableId, rows[2]._id!, { + expectStatus: 404, + }) + await config.api.row.get(tableId, rows[1]._id!, { expectStatus: 200 }) + }) }) }) })