Última actividad 1724977287

rootspring's Avatar rootspring revisó este gist 1724977287. Ir a la revisión

1 file changed, 75 insertions

fix.ts(archivo creado)

@@ -0,0 +1,75 @@
1 + export const createFieldsForUpdate = (
2 + columnField: Record<string, any>,
3 + configOpt: CanonicalConfigOption,
4 + oldFields: Record<string, any>,
5 + allDerivedData: Record<string, DerivedData>
6 + ): SettingsExecute => {
7 + let fields: Record<string, any> = {};
8 + let dependencyFields: string[] = [];
9 + Object.keys(columnField).forEach((k) => {
10 + let column = configOpt.columns.find((c) => c.id === k);
11 +
12 + if (!column) {
13 + return;
14 + }
15 +
16 + if (configOpt.primary_key != column.id && column.ignored_for.includes('Update')) {
17 + return;
18 + }
19 +
20 + let dispatchType = getDispatchType(columnField, column);
21 +
22 + let referencedVariables = dispatchType.referenced_variables;
23 +
24 + //logger.debug('editRow', 'Referenced variables', referencedVariables, k);
25 +
26 + // Ignore unchanged fields that are not the primary key
27 + if (isEqual(columnField[k], oldFields[k]) && k != configOpt.primary_key) {
28 + return;
29 + }
30 +
31 + // Check if isCleared
32 + if (allDerivedData[k]?.isCleared) {
33 + fields[k] = null;
34 + } else {
35 + fields[k] = columnField[k];
36 + }
37 +
38 + // Add to dependencyFields
39 + if (referencedVariables) {
40 + dependencyFields.push(
41 + ...referencedVariables.filter((v) => !dependencyFields.includes(v))
42 + );
43 + }
44 + });
45 +
46 + logger.info('editRow', 'Dependency fields', dependencyFields);
47 +
48 + // Add all dependency fields to the edit
49 + dependencyFields.forEach((k) => {
50 + let column = configOpt.columns.find((c) => c.id === k);
51 +
52 + if (!column) {
53 + return;
54 + }
55 +
56 + if (configOpt.primary_key != column.id && column.ignored_for.includes('Update')) {
57 + return;
58 + }
59 +
60 + if (!columnField[k]) {
61 + fields[k] = null;
62 + } else {
63 + fields[k] = columnField[k];
64 + }
65 + });
66 +
67 + let payload: SettingsExecute = {
68 + operation: 'Update',
69 + module: module.id,
70 + setting: configOpt.id,
71 + fields
72 + };
73 +
74 + return payload;
75 + }
Siguiente Anterior