diff --git a/utilities/project-factory/src/server/utils/campaignMappingUtils.ts b/utilities/project-factory/src/server/utils/campaignMappingUtils.ts index 036b22e17eb..f4698f4b77d 100644 --- a/utilities/project-factory/src/server/utils/campaignMappingUtils.ts +++ b/utilities/project-factory/src/server/utils/campaignMappingUtils.ts @@ -1,6 +1,6 @@ import createAndSearch from "../config/createAndSearch"; import config from "../config"; -import { getDataFromSheet, throwError } from "./genericUtils"; +import { getDataFromSheet, getLocalizedMessagesHandlerViaRequestInfo, throwError } from "./genericUtils"; import { getFormattedStringForDebug, logger } from "./logger"; import { defaultheader, httpRequest } from "./request"; import { produceModifiedMessages } from "../kafka/Producer"; @@ -230,6 +230,8 @@ async function getProjectMappingBody(messageObject: any, boundaryWithProject: an async function fetchAndMap(resources: any[], messageObject: any) { await persistTrack(messageObject?.Campaign?.id, processTrackTypes.prepareResourceForMapping, processTrackStatuses.inprogress) + const localizationMap = await getLocalizedMessagesHandlerViaRequestInfo(messageObject?.RequestInfo, messageObject?.Campaign?.tenantId); + messageObject.localizationMap = localizationMap try { const localizationMap = messageObject?.localizationMap; const sheetName: any = { diff --git a/utilities/project-factory/src/server/utils/campaignUtils.ts b/utilities/project-factory/src/server/utils/campaignUtils.ts index 424a96f80e6..942508d050f 100644 --- a/utilities/project-factory/src/server/utils/campaignUtils.ts +++ b/utilities/project-factory/src/server/utils/campaignUtils.ts @@ -544,7 +544,8 @@ async function enrichAndPersistCampaignWithError(requestBody: any, error: any) { // wait for 2 seconds logger.info(`Waiting for 2 seconds to persist errors`); await new Promise(resolve => setTimeout(resolve, 2000)); - await produceModifiedMessages(requestBody, topic); + const produceMessage: any = { CampaignDetails: requestBody.CampaignDetails } + await produceModifiedMessages(produceMessage, topic); await persistTrack(requestBody?.CampaignDetails?.id, processTrackTypes.error, processTrackStatuses.failed, { error: String((error?.message + (error?.description ? ` : ${error?.description}` : '')) || error) }); delete requestBody.CampaignDetails.campaignDetails } @@ -576,7 +577,10 @@ async function enrichAndPersistCampaignForCreate(request: any, firstPersist: boo } const topic = firstPersist ? config?.kafka?.KAFKA_SAVE_PROJECT_CAMPAIGN_DETAILS_TOPIC : config?.kafka?.KAFKA_UPDATE_PROJECT_CAMPAIGN_DETAILS_TOPIC delete request.body.CampaignDetails.codesTargetMapping - await produceModifiedMessages(request?.body, topic); + const produceMessage: any = { + CampaignDetails: request?.body?.CampaignDetails + }; + await produceModifiedMessages(produceMessage, topic); delete request.body.CampaignDetails.campaignDetails } @@ -622,7 +626,10 @@ async function enrichAndPersistCampaignForUpdate(request: any, firstPersist: boo request.body.CampaignDetails.projectId = request?.body?.CampaignDetails?.projectId || ExistingCampaignDetails?.projectId || null } delete request.body.CampaignDetails.codesTargetMapping - await produceModifiedMessages(request?.body, config?.kafka?.KAFKA_UPDATE_PROJECT_CAMPAIGN_DETAILS_TOPIC); + const producerMessage: any = { + CampaignDetails: request?.body?.CampaignDetails + } + await produceModifiedMessages(producerMessage, config?.kafka?.KAFKA_UPDATE_PROJECT_CAMPAIGN_DETAILS_TOPIC); delete request.body.ExistingCampaignDetails delete request.body.CampaignDetails.campaignDetails } @@ -659,7 +666,7 @@ async function persistForCampaignProjectMapping(request: any, createResourceDeta enrichInnerCampaignDetails(request, updatedInnerCampaignDetails) requestBody.CampaignDetails = request?.body?.CampaignDetails requestBody.CampaignDetails.campaignDetails = updatedInnerCampaignDetails - requestBody.localizationMap = localizationMap + // requestBody.localizationMap = localizationMap logger.info("Persisting CampaignProjectMapping..."); logger.debug(`CampaignProjectMapping: ${getFormattedStringForDebug(requestBody)}`); await produceModifiedMessages(requestBody, config?.kafka?.KAFKA_START_CAMPAIGN_MAPPING_TOPIC); diff --git a/utilities/project-factory/src/server/utils/genericUtils.ts b/utilities/project-factory/src/server/utils/genericUtils.ts index 704aa4ea390..97383fd4c00 100644 --- a/utilities/project-factory/src/server/utils/genericUtils.ts +++ b/utilities/project-factory/src/server/utils/genericUtils.ts @@ -11,7 +11,7 @@ import Localisation from "../controllers/localisationController/localisation.con import { executeQuery } from "./db"; import { generatedResourceTransformer } from "./transforms/searchResponseConstructor"; import { generatedResourceStatuses, headingMapping, resourceDataStatuses } from "../config/constants"; -import { getLocaleFromRequest, getLocalisationModuleName } from "./localisationUtils"; +import { getLocaleFromRequest, getLocaleFromRequestInfo, getLocalisationModuleName } from "./localisationUtils"; import { getBoundaryColumnName, getBoundaryTabName } from "./boundaryUtils"; import { getBoundaryDataService } from "../service/dataManageService"; import { addDataToSheet, formatWorksheet, getNewExcelWorkbook, updateFontNameToRoboto } from "./excelUtils"; @@ -1053,6 +1053,13 @@ async function getLocalizedMessagesHandler(request: any, tenantId: any, module = return localizationResponse; } +async function getLocalizedMessagesHandlerViaRequestInfo(RequestInfo: any, tenantId: any, module = config.localisation.localizationModule) { + const localisationcontroller = Localisation.getInstance(); + const locale = getLocaleFromRequestInfo(RequestInfo); + const localizationResponse = await localisationcontroller.getLocalisedData(module, locale, tenantId); + return localizationResponse; +} + async function translateSchema(schema: any, localizationMap?: { [key: string]: string }) { @@ -1225,7 +1232,8 @@ export { createBoundaryDataMainSheet, getMdmsDataBasedOnCampaignType, shutdownGracefully, - appendProjectTypeToCapacity + appendProjectTypeToCapacity, + getLocalizedMessagesHandlerViaRequestInfo }; diff --git a/utilities/project-factory/src/server/utils/localisationUtils.ts b/utilities/project-factory/src/server/utils/localisationUtils.ts index 0b1bd4804be..3d5585947ef 100644 --- a/utilities/project-factory/src/server/utils/localisationUtils.ts +++ b/utilities/project-factory/src/server/utils/localisationUtils.ts @@ -6,7 +6,15 @@ export const getLocaleFromRequest = (request: any) => { const msgId = request?.body?.RequestInfo?.msgId; // Split msgId by '|' delimiter and get the second part (index 1) // If splitting fails or no second part is found, use default locale from config - return msgId.split("|")?.[1] || config?.localisation?.defaultLocale; + return msgId?.split("|")?.[1] || config?.localisation?.defaultLocale; +}; + +export const getLocaleFromRequestInfo = (RequestInfo: any) => { + // Extract msgId from request body + const msgId = RequestInfo?.msgId; + // Split msgId by '|' delimiter and get the second part (index 1) + // If splitting fails or no second part is found, use default locale from config + return msgId?.split("|")?.[1] || config?.localisation?.defaultLocale; }; // Function to generate localisation module name based on hierarchy type @@ -22,17 +30,17 @@ export const getLocalisationModuleName = (hierarchyType: any) => { * @returns The transformed locale string. */ export const getTransformedLocale = (label: string) => { - // Trim leading and trailing whitespace from the label - label = label?.trim(); - // If label is not empty, convert to uppercase and replace special characters with underscores - return label && label.toUpperCase().replace(/[.:-\s\/]/g, "_"); - }; + // Trim leading and trailing whitespace from the label + label = label?.trim(); + // If label is not empty, convert to uppercase and replace special characters with underscores + return label && label.toUpperCase().replace(/[.:-\s\/]/g, "_"); +}; - export const convertLocalisationResponseToMap=(messages:any=[])=>{ - const localizationMap: any = {}; - messages.forEach((message: any) => { - localizationMap[message.code] = message.message; - }); - return localizationMap; - } \ No newline at end of file +export const convertLocalisationResponseToMap = (messages: any = []) => { + const localizationMap: any = {}; + messages.forEach((message: any) => { + localizationMap[message.code] = message.message; + }); + return localizationMap; +} \ No newline at end of file