From 6c22fcf2e7fe79e77582f5cb58d6a0338ff1e034 Mon Sep 17 00:00:00 2001 From: admin1 Date: Thu, 20 Jun 2024 17:38:42 +0530 Subject: [PATCH 1/4] fixed target validate for different tabs not present --- utilities/project-factory/src/server/api/campaignApis.ts | 2 +- utilities/project-factory/src/server/utils/genericUtils.ts | 4 ++-- .../src/server/validators/campaignValidators.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/utilities/project-factory/src/server/api/campaignApis.ts b/utilities/project-factory/src/server/api/campaignApis.ts index e9d2cd8f15..964aa6cde8 100644 --- a/utilities/project-factory/src/server/api/campaignApis.ts +++ b/utilities/project-factory/src/server/api/campaignApis.ts @@ -519,7 +519,7 @@ async function processValidate(request: any, localizationMap?: { [key: string]: const dataFromSheet = await getDataFromSheet(request, request?.body?.ResourceDetails?.fileStoreId, request?.body?.ResourceDetails?.tenantId, createAndSearchConfig, null, localizationMap) if (type == 'boundaryWithTarget') { logger.info("target sheet format validation started"); - immediateValidationForTargetSheet(dataFromSheet, localizationMap); + await immediateValidationForTargetSheet(dataFromSheet, localizationMap); logger.info("target sheet format validation completed and starts with data validation"); validateTargetSheetData(dataFromSheet, request, createAndSearchConfig?.boundaryValidation, localizationMap); } diff --git a/utilities/project-factory/src/server/utils/genericUtils.ts b/utilities/project-factory/src/server/utils/genericUtils.ts index 480d5fc813..31603c1ce6 100644 --- a/utilities/project-factory/src/server/utils/genericUtils.ts +++ b/utilities/project-factory/src/server/utils/genericUtils.ts @@ -969,7 +969,7 @@ function getDifferentDistrictTabs(boundaryData: any, differentTabsBasedOnLevel: if (districtIndex != -1) { const districtLevelRow = rowData.slice(0, districtIndex + 1); - const districtKey = districtLevelRow.join('_'); + const districtKey = districtLevelRow.join('#'); if (!uniqueDistrictsForMainSheet.includes(districtKey)) { uniqueDistrictsForMainSheet.push(districtKey); @@ -977,7 +977,7 @@ function getDifferentDistrictTabs(boundaryData: any, differentTabsBasedOnLevel: } } for (const uniqueData of uniqueDistrictsForMainSheet) { - differentDistrictTabs.push(uniqueData.slice(uniqueData.lastIndexOf('_') + 1)); + differentDistrictTabs.push(uniqueData.slice(uniqueData.lastIndexOf('#') + 1)); } return differentDistrictTabs; } diff --git a/utilities/project-factory/src/server/validators/campaignValidators.ts b/utilities/project-factory/src/server/validators/campaignValidators.ts index cddd2c9958..b5720d9f0c 100644 --- a/utilities/project-factory/src/server/validators/campaignValidators.ts +++ b/utilities/project-factory/src/server/validators/campaignValidators.ts @@ -1196,7 +1196,7 @@ function validateAllDistrictTabsPresentOrNot(dataFromSheet: any, localizationMap logger.debug("actual districts in boundary data sheet : " + getFormattedStringForDebug(tabsOfDistrict)); const tabsFromTargetSheet = Object.keys(dataFromSheet); logger.info("districts present in user filled sheet : " + (tabsFromTargetSheet?.length - tabsIndex)); - logger.debug("districts present in user filled sheet : " + getFormattedStringForDebug(tabsFromTargetSheet)); + logger.debug("districts present in user filled sheet (exclude first two tabs): " + getFormattedStringForDebug(tabsFromTargetSheet)); if (tabsFromTargetSheet.length - tabsIndex !== tabsOfDistrict.length) { throwError("COMMON", 400, "VALIDATION_ERROR", `${differentTabsBasedOnLevel} tabs uplaoded by user is either less or more than the ${differentTabsBasedOnLevel} in the boundary system `) From 2c1ffe2187be49a87d13db1f2d4d424018511f6d Mon Sep 17 00:00:00 2001 From: admin1 Date: Fri, 28 Jun 2024 13:47:57 +0530 Subject: [PATCH 2/4] split boundaries fetch from mdms --- utilities/project-factory/src/server/config/index.ts | 1 + .../project-factory/src/server/utils/campaignUtils.ts | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/utilities/project-factory/src/server/config/index.ts b/utilities/project-factory/src/server/config/index.ts index 127e6332f8..50fe8b4545 100644 --- a/utilities/project-factory/src/server/config/index.ts +++ b/utilities/project-factory/src/server/config/index.ts @@ -19,6 +19,7 @@ const config = { excludeHierarchyTypeFromBoundaryCodes:false, excludeBoundaryNameAtLastFromBoundaryCodes:false, masterNameForSchemaOfColumnHeaders: "adminSchema", + masterNameForSplitBoundariesOn: "hierarchyConfig", boundary: { boundaryCode: process.env.BOUNDARY_CODE_HEADER_NAME || "HCM_ADMIN_CONSOLE_BOUNDARY_CODE", boundaryTab: process.env.BOUNDARY_TAB_NAME || "HCM_ADMIN_CONSOLE_BOUNDARY_DATA", diff --git a/utilities/project-factory/src/server/utils/campaignUtils.ts b/utilities/project-factory/src/server/utils/campaignUtils.ts index 25c69502cc..b6a8e5f959 100644 --- a/utilities/project-factory/src/server/utils/campaignUtils.ts +++ b/utilities/project-factory/src/server/utils/campaignUtils.ts @@ -1788,7 +1788,8 @@ async function getFinalValidHeadersForTargetSheetAsPerCampaignType(request: any, async function getDifferentTabGeneratedBasedOnConfig(request: any, boundaryDataGeneratedBeforeDifferentTabSeparation: any, localizationMap?: any) { var boundaryDataGeneratedAfterDifferentTabSeparation: any = boundaryDataGeneratedBeforeDifferentTabSeparation; const boundaryData = await getBoundaryDataAfterGeneration(boundaryDataGeneratedBeforeDifferentTabSeparation, request, localizationMap); - const differentTabsBasedOnLevel = getLocalizedName(config?.boundary?.generateDifferentTabsOnBasisOf, localizationMap); + let differentTabsBasedOnLevel = await getBoundaryOnWhichWeSplit(request); + differentTabsBasedOnLevel = getLocalizedName(`${request?.query?.hierarchyType}_${differentTabsBasedOnLevel}`.toUpperCase(), localizationMap); logger.info(`Boundaries are seperated based on hierarchy type ${differentTabsBasedOnLevel}`) const isKeyOfThatTypePresent = boundaryData.some((data: any) => data.hasOwnProperty(differentTabsBasedOnLevel)); const boundaryTypeOnWhichWeSplit = boundaryData.filter((data: any) => data[differentTabsBasedOnLevel]); @@ -1799,6 +1800,11 @@ async function getDifferentTabGeneratedBasedOnConfig(request: any, boundaryDataG return boundaryDataGeneratedAfterDifferentTabSeparation; } +async function getBoundaryOnWhichWeSplit(request: any) { + const mdmsResponse = await getMDMSV1Data(request, config?.values?.moduleName, config?.masterNameForSplitBoundariesOn, request?.query?.tenantId); + return mdmsResponse.filter((item: any) => item.isActive).map((item: any) => item.splitBoundariesOn); +} + From 668761babca0f170930f73b4a2ab859e942d5f74 Mon Sep 17 00:00:00 2001 From: admin1 Date: Fri, 28 Jun 2024 17:29:21 +0530 Subject: [PATCH 3/4] updated logic to fetch split on from mdms based on campaign type --- utilities/project-factory/src/server/utils/campaignUtils.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/utilities/project-factory/src/server/utils/campaignUtils.ts b/utilities/project-factory/src/server/utils/campaignUtils.ts index b6a8e5f959..780df922ac 100644 --- a/utilities/project-factory/src/server/utils/campaignUtils.ts +++ b/utilities/project-factory/src/server/utils/campaignUtils.ts @@ -1802,7 +1802,9 @@ async function getDifferentTabGeneratedBasedOnConfig(request: any, boundaryDataG async function getBoundaryOnWhichWeSplit(request: any) { const mdmsResponse = await getMDMSV1Data(request, config?.values?.moduleName, config?.masterNameForSplitBoundariesOn, request?.query?.tenantId); - return mdmsResponse.filter((item: any) => item.isActive).map((item: any) => item.splitBoundariesOn); + const responseFromCampaignSearch = await getCampaignSearchResponse(request); + const hierarchyTypeFromCampaignResponseObject = responseFromCampaignSearch?.CampaignDetails?.[0].hierarchyType; + return mdmsResponse.filter((item: any) => item.hierarchy== hierarchyTypeFromCampaignResponseObject).map((item: any) => item.splitBoundariesOn); } From a72c1ae0a9f940727be46b1e3b7104668b79e366 Mon Sep 17 00:00:00 2001 From: admin1 Date: Fri, 28 Jun 2024 17:30:02 +0530 Subject: [PATCH 4/4] fromatting --- utilities/project-factory/src/server/utils/campaignUtils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/project-factory/src/server/utils/campaignUtils.ts b/utilities/project-factory/src/server/utils/campaignUtils.ts index 780df922ac..367ab14e09 100644 --- a/utilities/project-factory/src/server/utils/campaignUtils.ts +++ b/utilities/project-factory/src/server/utils/campaignUtils.ts @@ -1804,7 +1804,7 @@ async function getBoundaryOnWhichWeSplit(request: any) { const mdmsResponse = await getMDMSV1Data(request, config?.values?.moduleName, config?.masterNameForSplitBoundariesOn, request?.query?.tenantId); const responseFromCampaignSearch = await getCampaignSearchResponse(request); const hierarchyTypeFromCampaignResponseObject = responseFromCampaignSearch?.CampaignDetails?.[0].hierarchyType; - return mdmsResponse.filter((item: any) => item.hierarchy== hierarchyTypeFromCampaignResponseObject).map((item: any) => item.splitBoundariesOn); + return mdmsResponse.filter((item: any) => item.hierarchy == hierarchyTypeFromCampaignResponseObject).map((item: any) => item.splitBoundariesOn); }