14115 SIPs events under summary pages on myportal

This commit is contained in:
2025-02-20 07:35:32 +00:00
parent ae5c0b4e39
commit 49baec5814
4 changed files with 187 additions and 100 deletions
-1
View File
@@ -1192,7 +1192,6 @@ let MakeRepresentation = (props) => {
</h1> </h1>
<div id="rep-form"> <div id="rep-form">
<div className="govuk-grid-column-three-quarters wgForm"> <div className="govuk-grid-column-three-quarters wgForm">
www
{whichControl()} {whichControl()}
</div> </div>
+13 -1
View File
@@ -12,6 +12,7 @@ import {
getPortalLogin, getPortalLogin,
getPortalModuleDetails, getPortalModuleDetails,
getWatchedCases, getWatchedCases,
getSIPSEvents,
} from "../../../actions"; } from "../../../actions";
import { getFormCollectionByID } from "../../../components/utils"; import { getFormCollectionByID } from "../../../components/utils";
@@ -40,6 +41,7 @@ import { setSearch } from "../../../store/search/action";
import { import {
setSearchDetails, setSearchDetails,
setSearchResults, setSearchResults,
setEventDetails,
} from "../../../store/searchOutput/action"; } from "../../../store/searchOutput/action";
import { wrapper } from "../../../store/store"; import { wrapper } from "../../../store/store";
import { import {
@@ -116,6 +118,7 @@ const CaseHome = (props) => {
messagesObj={props.messagesObj} messagesObj={props.messagesObj}
showFilteredDocs={props.showFilteredDocs} showFilteredDocs={props.showFilteredDocs}
showMaps={props.showMaps} showMaps={props.showMaps}
eventsObj={props.searchResultsObj.eventsObj}
/> />
</div> </div>
<Footer <Footer
@@ -182,6 +185,14 @@ export const getServerSideProps = wrapper.getServerSideProps(
const searchResultsObj = await getBasicSearch(developmentQuery); const searchResultsObj = await getBasicSearch(developmentQuery);
const searchDetailsObj = await getSearchDetails(searchResultsObj); const searchDetailsObj = await getSearchDetails(searchResultsObj);
var eventsObj = {};
if (searchResultsObj.value[0].pinswg_appealcasetype == 846040002) {
eventsObj = await getSIPSEvents(
searchDetailsObj[0].value[0].pinswg_sipsid
);
store.dispatch(setEventDetails(eventsObj));
}
//console.log( //console.log(
// "\n======================================\n", // "\n======================================\n",
// searchResultsObj, // searchResultsObj,
@@ -354,6 +365,7 @@ export const getServerSideProps = wrapper.getServerSideProps(
searchResultsObj: { searchResultsObj: {
searchResultsObj: searchResultsObj, searchResultsObj: searchResultsObj,
searchDetailsObj: searchDetailsObj, searchDetailsObj: searchDetailsObj,
eventsObj: eventsObj,
}, },
currentType: "directResultsObj", currentType: "directResultsObj",
docsOffline: process.env.DOCAPI_OFFLINE || false, docsOffline: process.env.DOCAPI_OFFLINE || false,
@@ -458,7 +470,7 @@ const mapStateToProps = (state) => {
accountDetails: state.accountDetails, accountDetails: state.accountDetails,
currentView: state.currentView, currentView: state.currentView,
search: state.search, search: state.search,
searchResultsObj: state.searchResultsObj, //searchResultsObj: state.searchResultsObj,
documentDetailsObj: state.searchResultsObj.documentDetailsObj, documentDetailsObj: state.searchResultsObj.documentDetailsObj,
formData: state.formData, formData: state.formData,
appealType: state.appealType, appealType: state.appealType,
+12
View File
@@ -9,6 +9,7 @@ import {
getIP, getIP,
getPersonalAccount, getPersonalAccount,
getPortalLogin, getPortalLogin,
getSIPSEvents,
} from "../../../actions"; } from "../../../actions";
import Breadcrumbs from "../../../components/breadcrumbs"; import Breadcrumbs from "../../../components/breadcrumbs";
import Case from "../../../components/case"; import Case from "../../../components/case";
@@ -20,6 +21,7 @@ import { setAccountDetails } from "../../../store/accountDetails/action";
import { setCurrentReference } from "../../../store/currentView/action"; import { setCurrentReference } from "../../../store/currentView/action";
import { setSearch } from "../../../store/search/action"; import { setSearch } from "../../../store/search/action";
import { import {
setEventDetails,
setSearchDetails, setSearchDetails,
setSearchResults, setSearchResults,
} from "../../../store/searchOutput/action"; } from "../../../store/searchOutput/action";
@@ -98,6 +100,7 @@ const CaseHome = (props) => {
messagesObj={props.messagesObj} messagesObj={props.messagesObj}
showFilteredDocs={props.showFilteredDocs} showFilteredDocs={props.showFilteredDocs}
showMaps={props.showMaps} showMaps={props.showMaps}
eventsObj={props.searchResultsObj.eventsObj}
/> />
</div> </div>
<Footer <Footer
@@ -148,6 +151,14 @@ export const getServerSideProps = wrapper.getServerSideProps(
const searchResultsObj = await getBasicDNSURLSearch(developmentQuery); const searchResultsObj = await getBasicDNSURLSearch(developmentQuery);
const searchDetailsObj = await getSearchDetails(searchResultsObj); const searchDetailsObj = await getSearchDetails(searchResultsObj);
var eventsObj = {};
if (searchResultsObj.value[0].pinswg_appealcasetype == 846040002)
eventsObj = await getSIPSEvents(
searchDetailsObj[0].value[0].pinswg_sipsid
);
store.dispatch(setEventDetails(eventsObj));
// console.log( // console.log(
// "\n======================================\n", // "\n======================================\n",
// searchResultsObj, // searchResultsObj,
@@ -225,6 +236,7 @@ export const getServerSideProps = wrapper.getServerSideProps(
searchResultsObj: { searchResultsObj: {
searchResultsObj: searchResultsObj, searchResultsObj: searchResultsObj,
searchDetailsObj: searchDetailsObj, searchDetailsObj: searchDetailsObj,
eventsObj: eventsObj,
}, },
currentType: "directResultsObj", currentType: "directResultsObj",
docsOffline: process.env.DOCAPI_OFFLINE || false, docsOffline: process.env.DOCAPI_OFFLINE || false,
+162 -98
View File
@@ -373,115 +373,179 @@ export const getServerSideProps = wrapper.getServerSideProps(
} }
); );
// const getDetails = async (resultsObj, detailsType) => {
// let detailsArr = [];
// const limitRequests = pLimit(1); // Limit to 5 concurrent requests
// resultsObj =
// detailsType == "mySubmittedReps" ? resultsObj : resultsObj.value;
// if (detailsType == "myRepresentations") {
// 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);
// }
// 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(
// "=============================\ngetCase error",
// error
// );
// })
// );
// });
// });
// }
// //debugger;
// 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;
// }
// console.log(detailsType, " case id : ", caseID);
// 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);
// return detArr;
// };
const getDetails = async (resultsObj, detailsType) => { const getDetails = async (resultsObj, detailsType) => {
let detailsArr = []; let detailsArr = [];
const limitRequests = pLimit(5); // Limit to 5 concurrent requests const limitRequests = pLimit(5); // Allow up to 5 concurrent requests
// Adjust resultsObj based on detailsType
resultsObj = resultsObj =
detailsType == "mySubmittedReps" ? resultsObj : resultsObj.value; detailsType === "mySubmittedReps" ? resultsObj : resultsObj.value;
if (detailsType == "myRepresentations") { const getDetailsForCase = async (searchDetail) => {
limitRequests(async () => { try {
resultsObj.map((searchDetail, index) => { let caseID = "";
detailsArr.push(
getCase(searchDetail["incidentID"])
.then(async (data) => {
let caseID = "";
switch (detailsType) { // Determine the case ID based on the detailsType
case "myCases": switch (detailsType) {
caseID = data.pinswg_title; case "myCases":
break; caseID = searchDetail.pinswg_title;
case "myWatchedCases": break;
case "mySubmittedReps": case "myWatchedCases":
caseID = case "mySubmittedReps":
data[ caseID =
"_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue" searchDetail[
]; "_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue"
break; ];
case "awaitingSubmission": break;
case "myRepresentations": case "awaitingSubmission":
try { caseID = searchDetail.ticketnumber;
caseID = data.ticketnumber; break;
} catch { case "myRepresentations":
console.log("missing:", data); caseID = searchDetail.casereference;
} break;
default:
caseID = searchDetail.pinswg_title;
}
break; console.log(detailsType, " case id: ", caseID);
default:
caseID = data.pinswg_title; // If the appeal case type is valid, fetch the portal module details
} if (searchDetail.pinswg_appealcasetype != null) {
return await getPortalModuleDetails( const formCollectionName = getFormCollectionByID(
getFormCollectionByID( searchDetail.pinswg_appealcasetype
data.pinswg_appealcasetype ).LogicalCollectionName;
).LogicalCollectionName,
caseID const details = await getPortalModuleDetails(
).catch((error) => { formCollectionName,
console.log( caseID
"=============================\ngetPortalModuleDetails error",
error
);
});
})
.catch((error) => {
console.log(
"=============================\ngetCase error",
error
);
})
); );
}); detailsArr.push(details);
}); }
} } catch (error) {
//debugger; console.log("Error processing case:", error);
await Promise.all( }
resultsObj.map(async (searchDetail, index) => { };
limitRequests(async () => {
try {
let caseID = "";
switch (detailsType) { // Use limitRequests to manage concurrency
case "myCases": const promises = resultsObj.map((searchDetail) => {
caseID = searchDetail.pinswg_title; return limitRequests(() => getDetailsForCase(searchDetail));
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); // Wait for all the requests to complete
await Promise.all(promises);
searchDetail.pinswg_appealcasetype != null && return detailsArr;
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);
return detArr;
}; };
const mapStateToProps = (state) => { const mapStateToProps = (state) => {