From bca5bce34f54666709269be1faadb4ac6e53341d Mon Sep 17 00:00:00 2001 From: Pranav C Date: Thu, 4 Jan 2024 13:19:24 +0000 Subject: [PATCH] feat: valid insert/update payload --- packages/nocodb/src/db/BaseModelSqlv2.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/nocodb/src/db/BaseModelSqlv2.ts b/packages/nocodb/src/db/BaseModelSqlv2.ts index 7ae27a2512..e7193856b5 100644 --- a/packages/nocodb/src/db/BaseModelSqlv2.ts +++ b/packages/nocodb/src/db/BaseModelSqlv2.ts @@ -3829,12 +3829,18 @@ class BaseModelSqlv2 { protected async errorDelete(_e, _id, _trx, _cookie) {} - async validate(columns) { + async validate(data: Record): Promise { await this.model.getColumns(); // let cols = Object.keys(this.columns); for (let i = 0; i < this.model.columns.length; ++i) { const column = this.model.columns[i]; - await this.validateOptions(column, columns); + + if (column.title in data && isCreatedTimeOrUpdatedTimeCol(column)) { + NcError.badRequest( + `Column "${column.title}" is auto generated and cannot be updated`, + ); + } + await this.validateOptions(column, data); // skip validation if `validate` is undefined or false if (!column?.meta?.validate || !column?.validate) continue; @@ -3852,7 +3858,7 @@ class BaseModelSqlv2 { ? customValidators[func[j]] : Validator[func[j]] : func[j]; - const columnValue = columns?.[cn] || columns?.[columnTitle]; + const columnValue = data?.[cn] || data?.[columnTitle]; const arg = typeof func[j] === 'string' ? columnValue + '' : columnValue; if (