From dcb1926db5a8f2bf69e50081610221e1658d0a01 Mon Sep 17 00:00:00 2001 From: arpitnath Date: Wed, 6 Sep 2023 03:40:22 +0530 Subject: [PATCH] map older query ids to new for event action: run query --- .../src/Editor/Inspector/EventManager.jsx | 1 + server/src/services/apps.service.ts | 29 +++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/frontend/src/Editor/Inspector/EventManager.jsx b/frontend/src/Editor/Inspector/EventManager.jsx index caa0b8c3ae..4659d86ec4 100644 --- a/frontend/src/Editor/Inspector/EventManager.jsx +++ b/frontend/src/Editor/Inspector/EventManager.jsx @@ -467,6 +467,7 @@ export const EventManager = ({ search={true} onChange={(value) => { const query = dataQueries.find((dataquery) => dataquery.id === value); + const parameters = (query?.options?.parameters ?? []).reduce( (paramObj, param) => ({ ...paramObj, diff --git a/server/src/services/apps.service.ts b/server/src/services/apps.service.ts index f86470e26a..12abdbd9a8 100644 --- a/server/src/services/apps.service.ts +++ b/server/src/services/apps.service.ts @@ -541,7 +541,7 @@ export class AppsService { const dataSourceMapping = {}; const newDataQueries = []; const allEvents = await manager.find(EventHandler, { - where: { appVersionId: versionFrom?.id }, + where: { appVersionId: versionFrom?.id, target: 'data_query' }, }); if (dataSources?.length) { @@ -569,14 +569,12 @@ export class AppsService { const dataQueryEvents = allEvents.filter((event) => event.sourceId === dataQuery.id); for (const event of dataQueryEvents) { const newEvent = new EventHandler(); - newEvent.id = uuid.v4(); newEvent.name = event.name; newEvent.sourceId = newQuery.id; newEvent.target = event.target; newEvent.event = event.event; newEvent.appVersionId = appVersion.id; - await manager.save(newEvent); } @@ -619,6 +617,18 @@ export class AppsService { oldDataQueryToNewMapping ); newQuery.options = newOptions; + + const newQueryEvents = await manager.find(EventHandler, { + where: { appVersionId: appVersion.id, sourceId: newQuery.id }, + }); + + const updatedEvents = this.replaceDataQueryEventActionWithNewDataQueryIds( + newQueryEvents, + oldDataQueryToNewMapping + ); + + await manager.save(updatedEvents); + await manager.save(newQuery); } @@ -676,6 +686,19 @@ export class AppsService { return options; } + replaceDataQueryEventActionWithNewDataQueryIds(events: EventHandler[], dataQueryMapping) { + if (events) { + const replacedEvents = events.map((event) => { + if (event.event.queryId) { + event.event.queryId = dataQueryMapping[event.event.queryId]; + } + + return event; + }); + return replacedEvents; + } + } + replaceDataQueryIdWithinDefinitions(definition, dataQueryMapping) { if (definition?.pages) { for (const pageId of Object.keys(definition?.pages)) {