diff --git a/packages/agent/src/services/model-customizations/actions/update-record/update-record-plugin.ts b/packages/agent/src/services/model-customizations/actions/update-record/update-record-plugin.ts index c27a419077..dc2a59c77c 100644 --- a/packages/agent/src/services/model-customizations/actions/update-record/update-record-plugin.ts +++ b/packages/agent/src/services/model-customizations/actions/update-record/update-record-plugin.ts @@ -1,4 +1,4 @@ -import { Plugin } from '@forestadmin/datasource-customizer'; +import { ActionContext, Plugin } from '@forestadmin/datasource-customizer'; import { ModelCustomization, UpdateRecordActionConfiguration, @@ -25,13 +25,17 @@ export default class UpdateRecordActionsPlugin { collection.addAction(action.name, { scope: action.configuration.scope, - execute: async context => { + execute: async (context: ActionContext) => { const { configuration: { - configuration: { fields }, + configuration: { fields: fieldsToUpdate }, }, } = action; + const fields = fieldsToUpdate.reduce((acc, fieldToUpdate) => { + return { ...acc, [fieldToUpdate.fieldName]: fieldToUpdate.value }; + }, {}); + await context.collection.update(context.filter, fields); }, }); diff --git a/packages/agent/test/services/model-customizations/actions/update-record/update-record-plugin.test.ts b/packages/agent/test/services/model-customizations/actions/update-record/update-record-plugin.test.ts index 7aa41b8a3a..9fa76d6076 100644 --- a/packages/agent/test/services/model-customizations/actions/update-record/update-record-plugin.test.ts +++ b/packages/agent/test/services/model-customizations/actions/update-record/update-record-plugin.test.ts @@ -24,7 +24,7 @@ describe('Services > ModelCustomizations > Actions > UpdateRecordActionsPlugin', configuration: { type: 'update-record', scope, - configuration: { fields: { field: 'value' } }, + configuration: { fields: [{ fieldName: 'field', value: 'value' }] }, }, }; @@ -56,7 +56,7 @@ describe('Services > ModelCustomizations > Actions > UpdateRecordActionsPlugin', configuration: { type: 'update-record', scope: 'Global', - configuration: { fields: { field: 'value' } }, + configuration: { fields: [{ fieldName: 'field', value: 'value' }] }, }, }; diff --git a/packages/forestadmin-client/src/model-customizations/types.ts b/packages/forestadmin-client/src/model-customizations/types.ts index 8dc0147891..3656805f35 100644 --- a/packages/forestadmin-client/src/model-customizations/types.ts +++ b/packages/forestadmin-client/src/model-customizations/types.ts @@ -41,7 +41,7 @@ export type WebhookActionConfiguration = ActionConfiguration; + fields: Array<{ fieldName: string; value: unknown }>; }; export type UpdateRecordActionConfiguration =