From 522fe00bb6a7b05d2cf351e34a670f3529b39ba9 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Tue, 11 Apr 2023 13:37:12 +0800 Subject: [PATCH] feat: OldData - dataDelete --- .../datas/old-datas/old-datas.controller.ts | 19 +++++++++++++++++++ .../datas/old-datas/old-datas.service.ts | 12 ++++++++++++ 2 files changed, 31 insertions(+) diff --git a/packages/nocodb-nest/src/modules/datas/old-datas/old-datas.controller.ts b/packages/nocodb-nest/src/modules/datas/old-datas/old-datas.controller.ts index 0fd3a094e9..51a5206e1a 100644 --- a/packages/nocodb-nest/src/modules/datas/old-datas/old-datas.controller.ts +++ b/packages/nocodb-nest/src/modules/datas/old-datas/old-datas.controller.ts @@ -69,4 +69,23 @@ export class OldDatasController { }), ); } + + @Delete('/nc/:projectId/api/v1/:tableName/:rowId') + @Acl('dataDelete') + async dataDelete( + @Request() req, + @Response() res, + @Param('projectId') projectId: string, + @Param('tableName') tableName: string, + @Param('rowId') rowId: string, + ) { + res.json( + await this.oldDatasService.dataDelete({ + projectId: projectId, + tableName: tableName, + rowId, + cookie: req, + }), + ); + } } diff --git a/packages/nocodb-nest/src/modules/datas/old-datas/old-datas.service.ts b/packages/nocodb-nest/src/modules/datas/old-datas/old-datas.service.ts index 12ca8d1d06..0e997ee63a 100644 --- a/packages/nocodb-nest/src/modules/datas/old-datas/old-datas.service.ts +++ b/packages/nocodb-nest/src/modules/datas/old-datas/old-datas.service.ts @@ -113,6 +113,18 @@ export class OldDatasService { return await baseModel.updateByPk(param.rowId, param.body, null, param); } + async dataDelete(param: OldPathParams & { rowId: string; cookie: any }) { + const { model, view } = await this.getViewAndModelFromRequest(param); + const base = await Base.get(model.base_id); + const baseModel = await Model.getBaseModelSQL({ + id: model.id, + viewId: view.id, + dbDriver: await NcConnectionMgrv2.get(base), + }); + + return await baseModel.delByPk(param.rowId, null, param.cookie); + } + async getViewAndModelFromRequest(req) { const project = await Project.getWithInfo(req.params.projectId); const model = await Model.getByAliasOrId({