From b79e21c4195bc1980e740e29a59ace036a4e9179 Mon Sep 17 00:00:00 2001 From: rdbsolutions Date: Fri, 3 Jan 2025 07:58:01 +0000 Subject: [PATCH] rep defect 17 --- pages/myportal/index.js | 167 +++++++++++++++++++++------------------- 1 file changed, 88 insertions(+), 79 deletions(-) diff --git a/pages/myportal/index.js b/pages/myportal/index.js index 8debb32e..3c0e05de 100644 --- a/pages/myportal/index.js +++ b/pages/myportal/index.js @@ -51,6 +51,7 @@ import { setWatchedCases, setWatchedCasesDetails, } from "../../store/watchedCases/action"; +import pLimit from "p-limit"; const Home = (props) => { const { @@ -374,101 +375,109 @@ export const getServerSideProps = wrapper.getServerSideProps( const getDetails = async (resultsObj, detailsType) => { let detailsArr = []; + const limitRequests = pLimit(5); // Limit to 5 concurrent requests resultsObj = detailsType == "mySubmittedReps" ? resultsObj : resultsObj.value; if (detailsType == "myRepresentations") { - const repsObj = resultsObj.map((searchDetail, index) => { - detailsArr.push( - getCase(searchDetail["incidentID"]) - .then(async (data) => { - let caseID = ""; + limitRequests(async () => { + resultsObj.map((searchDetail, index) => { + detailsArr.push( + getCase(searchDetail["incidentID"]) + .then(async (data) => { + let caseID = ""; - switch (detailsType) { - case "myCases": - caseID = data.pinswg_title; - break; - case "myWatchedCases": - case "mySubmittedReps": - caseID = - data[ - "_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue" - ]; - break; - case "awaitingSubmission": - case "myRepresentations": - try { - caseID = data.ticketnumber; - } catch { - console.log("missing:", data); - } + switch (detailsType) { + case "myCases": + caseID = data.pinswg_title; + break; + case "myWatchedCases": + case "mySubmittedReps": + caseID = + data[ + "_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue" + ]; + break; + case "awaitingSubmission": + case "myRepresentations": + try { + caseID = data.ticketnumber; + } catch { + console.log("missing:", data); + } - break; - default: - caseID = data.pinswg_title; - } - return await getPortalModuleDetails( - getFormCollectionByID(data.pinswg_appealcasetype) - .LogicalCollectionName, - caseID - ).catch((error) => { + break; + default: + caseID = data.pinswg_title; + } + return await getPortalModuleDetails( + getFormCollectionByID( + data.pinswg_appealcasetype + ).LogicalCollectionName, + caseID + ).catch((error) => { + console.log( + "=============================\ngetPortalModuleDetails error", + error + ); + }); + }) + .catch((error) => { console.log( - "=============================\ngetPortalModuleDetails error", + "=============================\ngetCase error", error ); - }); - }) - .catch((error) => { - console.log( - "=============================\ngetCase error", - error - ); - }) - ); + }) + ); + }); }); } //debugger; - const detailsObj = resultsObj.map(async (searchDetail, index) => { - let caseID = ""; + await Promise.all( + resultsObj.map(async (searchDetail, index) => { + limitRequests(async () => { + try { + let caseID = ""; - switch (detailsType) { - case "myCases": - caseID = searchDetail.pinswg_title; - break; - case "myWatchedCases": - case "mySubmittedReps": - caseID = - searchDetail[ - "_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue" - ]; - break; - case "awaitingSubmission": - caseID = searchDetail.ticketnumber; - break; - case "myRepresentations": - caseID = searchDetail.casereference; - break; - default: - caseID = searchDetail.pinswg_title; - } + switch (detailsType) { + case "myCases": + caseID = searchDetail.pinswg_title; + break; + case "myWatchedCases": + case "mySubmittedReps": + caseID = + searchDetail[ + "_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue" + ]; + break; + case "awaitingSubmission": + caseID = searchDetail.ticketnumber; + break; + case "myRepresentations": + caseID = searchDetail.casereference; + break; + default: + caseID = searchDetail.pinswg_title; + } - console.log(detailsType, " case id : ", caseID); + console.log(detailsType, " case id : ", caseID); - searchDetail.pinswg_appealcasetype != null && - detailsArr.push( - await getPortalModuleDetails( - getFormCollectionByID(searchDetail.pinswg_appealcasetype) - .LogicalCollectionName, - caseID - // detailsType != "myWatchedCases" - // ? searchDetail.ticketnumber - // : searchDetail[ - // "_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue" - // ] - ) - ); - }); + searchDetail.pinswg_appealcasetype != null && + detailsArr.push( + getPortalModuleDetails( + getFormCollectionByID( + searchDetail.pinswg_appealcasetype + ).LogicalCollectionName, + caseID + ) + ); + } catch (error) { + console.log("Error processing case:", error); + } + }); + }) + ); let detArr = Promise.all(detailsArr); // console.log(detArr);