Skip to content

Commit

Permalink
Ashish egov patch 1 (#1228)
Browse files Browse the repository at this point in the history
* Update Listener.ts

* added new branch

* Update Listener.ts

* fixed mapping kafka error

* mapping kafka fixed

* fix kafka

* fix kafka

* Removing foreign key constraint

* Producer update

* Revert "Ashish egov patch 2 (#1178)"

This reverts commit e86a4dc.

* Update Producer.ts

* Update Producer.ts

* Feat : updated producemodified message

* Feat : removed waiting

* adding constraint

* Update V20240731162600__add_uniqiue_constraint_process_track.sql

* Update constants.ts

* Feat : improved kafka

* Update Producer.ts

* Update Producer.ts

* Update campaignUtils.ts

* feat : solved localization passing through kafka

* Update publishProjectFactory.yml
  • Loading branch information
ashish-egov committed Aug 5, 2024
1 parent a145e37 commit 3ce558b
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 20 deletions.
Original file line number Diff line number Diff line change
@@ -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";
Expand Down Expand Up @@ -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 = {
Expand Down
15 changes: 11 additions & 4 deletions utilities/project-factory/src/server/utils/campaignUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down Expand Up @@ -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
}

Expand Down Expand Up @@ -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
}
Expand Down Expand Up @@ -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);
Expand Down
12 changes: 10 additions & 2 deletions utilities/project-factory/src/server/utils/genericUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down Expand Up @@ -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 }) {
Expand Down Expand Up @@ -1225,7 +1232,8 @@ export {
createBoundaryDataMainSheet,
getMdmsDataBasedOnCampaignType,
shutdownGracefully,
appendProjectTypeToCapacity
appendProjectTypeToCapacity,
getLocalizedMessagesHandlerViaRequestInfo
};


34 changes: 21 additions & 13 deletions utilities/project-factory/src/server/utils/localisationUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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;
}
export const convertLocalisationResponseToMap = (messages: any = []) => {
const localizationMap: any = {};
messages.forEach((message: any) => {
localizationMap[message.code] = message.message;
});
return localizationMap;
}

0 comments on commit 3ce558b

Please sign in to comment.