mirror of https://github.com/nocodb/nocodb
flisowna
2 years ago
7 changed files with 169 additions and 0 deletions
@ -0,0 +1,67 @@
|
||||
import Noco from '../Noco'; |
||||
import { CacheGetType, CacheScope, MetaTable } from '../utils/globals'; |
||||
import NocoCache from '../cache/NocoCache'; |
||||
import { extractProps } from '../meta/helpers/extractProps'; |
||||
|
||||
export default class BarcodeColumn { |
||||
fk_column_id: string; |
||||
fk_barcode_value_column_id: string; |
||||
|
||||
constructor(data: Partial<BarcodeColumn>) { |
||||
Object.assign(this, data); |
||||
} |
||||
|
||||
public static async insert( |
||||
data: Partial<BarcodeColumn>, |
||||
ncMeta = Noco.ncMeta |
||||
) { |
||||
await ncMeta.metaInsert2(null, null, MetaTable.COL_BARCODE, { |
||||
fk_column_id: data.fk_column_id, |
||||
fk_barcode_value_column_id: data.fk_barcode_value_column_id, |
||||
}); |
||||
|
||||
return this.read(data.fk_column_id, ncMeta); |
||||
} |
||||
public static async read(columnId: string, ncMeta = Noco.ncMeta) { |
||||
let column = |
||||
columnId && |
||||
(await NocoCache.get( |
||||
`${CacheScope.COL_BARCODE}:${columnId}`, |
||||
CacheGetType.TYPE_OBJECT |
||||
)); |
||||
if (!column) { |
||||
column = await ncMeta.metaGet2( |
||||
null, //,
|
||||
null, //model.db_alias,
|
||||
MetaTable.COL_BARCODE, |
||||
{ fk_column_id: columnId } |
||||
); |
||||
await NocoCache.set(`${CacheScope.COL_BARCODE}:${columnId}`, column); |
||||
} |
||||
|
||||
return column ? new BarcodeColumn(column) : null; |
||||
} |
||||
|
||||
id: string; |
||||
|
||||
static async update( |
||||
id: string, |
||||
barcode: Partial<BarcodeColumn>, |
||||
ncMeta = Noco.ncMeta |
||||
) { |
||||
const updateObj = extractProps(barcode, [ |
||||
'fk_column_id', |
||||
'fk_barcode_value_column_id', |
||||
]); |
||||
// get existing cache
|
||||
const key = `${CacheScope.COL_BARCODE}:${id}`; |
||||
let o = await NocoCache.get(key, CacheGetType.TYPE_OBJECT); |
||||
if (o) { |
||||
o = { ...o, ...updateObj }; |
||||
// set cache
|
||||
await NocoCache.set(key, o); |
||||
} |
||||
// set meta
|
||||
await ncMeta.metaUpdate(null, null, MetaTable.COL_BARCODE, updateObj, id); |
||||
} |
||||
} |
Loading…
Reference in new issue