Browse Source

refactor(nocodb): revise hook sample data structure

pull/5349/head
Wing-Kam Wong 2 years ago
parent
commit
88948ca15f
  1. 35
      packages/nocodb/src/lib/meta/helpers/populateSamplePayload.ts

35
packages/nocodb/src/lib/meta/helpers/populateSamplePayload.ts

@ -9,9 +9,10 @@ import type SelectOption from '../../models/SelectOption';
export default async function populateSamplePayload(
viewOrModel: View | Model,
includeNested = false,
operation = 'insert'
operation = 'insert',
scope = 'records'
) {
const out = {};
const rows = {};
let columns: Column[] = [];
let model: Model;
if (viewOrModel instanceof View) {
@ -26,6 +27,18 @@ export default async function populateSamplePayload(
model = viewOrModel;
}
await model.getViews();
const samplePayload = {
type: `${scope}.after.${operation}`,
data: {
table_id: model.id,
table_name: model.title,
view_id: model.views[0].id,
view_name: model.views[0].title,
},
};
for (const column of columns) {
if (
!includeNested &&
@ -33,13 +46,23 @@ export default async function populateSamplePayload(
)
continue;
if (operation === 'delete' && model.primaryKey?.title !== column.title)
continue;
rows[column.title] = await getSampleColumnValue(column);
}
out[column.title] = await getSampleColumnValue(column);
let prevRows;
if (operation !== 'insert') {
prevRows = rows;
}
return out;
samplePayload.data = {
...samplePayload.data,
...(prevRows && {
[operation === 'delete' ? 'deleted_rows' : 'previous_rows']: [prevRows],
}),
...(operation !== 'delete' && rows && { rows: [rows] }),
};
return samplePayload;
}
async function getSampleColumnValue(column: Column): Promise<any> {

Loading…
Cancel
Save