Merged PR 1811: use ticket number not title/reference/pinswg_name

Related work items: #18356
This commit is contained in:
Robert Bond
2025-08-12 08:42:11 +00:00
27 changed files with 226 additions and 89 deletions
@@ -33,7 +33,7 @@ import axios from "axios";
import CryptoJS from "crypto-js";
import { azureHeaders, consoleLogger, getToken } from "../../../actions";
import { getSelectQuery } from "../../../actions/selectQueryTypes";
import { getNavigationPropertyByPrimaryAttribute } from "../../../components/utils";
const WORDKEY = process.env.HASHKEY;
const WEBAPI_URL =
@@ -55,13 +55,22 @@ export default async function ApiProxy(req, res) {
var incidentID = req.query.incidentID;
var token = await getToken();
let navigationProperty =
getNavigationPropertyByPrimaryAttribute(
primaryIdAttribute
).NavigationProperty;
var queryUrl =
appealTypeName +
"?$filter=_" +
primaryIdAttribute +
"s_value eq " +
incidentID +
"&$count=true";
"&$count=true" +
"&$expand=" +
navigationProperty +
"($select=ticketnumber)";
//" and statuscode eq 1&$count=true";
queryUrl = queryUrl + getSelectQuery(appealTypeName);
@@ -81,6 +90,13 @@ export default async function ApiProxy(req, res) {
azureHeaders(token.access_token)
)
.then(({ data }) => {
let flattened = data.value.map((r) => ({
...r,
ticketnumber: r[navigationProperty]?.ticketnumber || null,
}));
data.value = flattened;
res.status(200).json(data);
})
.catch((error) => {
@@ -34,7 +34,7 @@ import CryptoJS from "crypto-js";
import _ from "lodash";
import { azureHeadersPaged, consoleLogger, getToken } from "../../../actions";
import { getSelectQuery } from "../../../actions/selectQueryTypes";
import { getNavigationPropertyByPrimaryAttribute } from "../../../components/utils";
const WORDKEY = process.env.HASHKEY;
const WEBAPI_URL =
@@ -59,13 +59,22 @@ export default async function ApiProxy(req, res) {
var incidentID = req.query.incidentID;
var token = await getToken();
let navigationProperty =
getNavigationPropertyByPrimaryAttribute(
primaryIdAttribute
).NavigationProperty;
var queryUrl =
appealTypeName +
"?$filter=_" +
primaryIdAttribute +
"s_value eq " +
incidentID +
"&$count=true";
"&$count=true" +
"&$expand=" +
navigationProperty +
"($select=ticketnumber)";
//" and statuscode eq 1&$count=true";
queryUrl = queryUrl + getSelectQuery(appealTypeName);
@@ -78,10 +87,18 @@ export default async function ApiProxy(req, res) {
azureHeadersPaged(token.access_token)
)
.then(({ data }) => {
let flattened = data.value.map((r) => ({
...r,
ticketnumber: r[navigationProperty]?.ticketnumber || null,
}));
data.value = flattened;
var dataStr;
_.has(data, "@odata.nextLink") == true &&
((dataStr = JSON.stringify(data["@odata.nextLink"])),
(data["@odata.nextLink"] = dataStr.split("/v8.2/")[1]));
return res.status(200).json(data);
})
.catch((error) => {
+4
View File
@@ -79,6 +79,10 @@ const CaseHome = (props) => {
props.awaitingSubmission.awaitingSubmission
}
caseReference={
props.searchResultsObj.searchResultsObj.value[0]
.caseReference
}
ticketnumber={
props.searchResultsObj.searchResultsObj.value[0]
.ticketnumber
}
+7 -2
View File
@@ -20,7 +20,7 @@ import { wrapper } from "../store/store";
import ServiceBanner from "../components/servicebanner";
const Home = (props) => {
const { footerLinks, pages, showMap } = props;
const { footerLinks, pages, showMap, showLoginCheck } = props;
let { t, lang } = useTranslation();
const router = useRouter();
@@ -105,6 +105,7 @@ const Home = (props) => {
showMap={showMap}
searchString="DNS"
searchResultsObj={props.searchResultsObj}
showLoginCheck={showLoginCheck}
/>
</div>
<Footer footerLinks={footerLinks} ticketnumber={props} />
@@ -134,6 +135,7 @@ export const getServerSideProps = wrapper.getServerSideProps(
}
: searchResultsObj;
const showLoginCheck = process.env.SHOWLOGIN || false;
const showMapCheck = process.env.SHOWMAPS || false;
if (_.has(searchResultsObj, "status") == true) {
@@ -156,7 +158,10 @@ export const getServerSideProps = wrapper.getServerSideProps(
}
return {
props: { showMap: showMapCheck },
props: {
showMap: showMapCheck,
showLoginCheck: showLoginCheck,
},
};
}
);
+9 -14
View File
@@ -124,9 +124,7 @@ const CaseHome = (props) => {
<Footer
footerLinks={footerLinks}
props={props}
ticketnumber={
props.currentView.caseReference.currentReference
}
ticketnumber={props.currentView.caseReference.ticketnumber}
/>
<TimeOut />
</div>
@@ -177,10 +175,7 @@ export const getServerSideProps = wrapper.getServerSideProps(
store.dispatch(setAccountDetails(accountDetails));
store.dispatch(setLoggedInUserId(loggedInUser));
let developmentQuery =
query.ticketnumber.indexOf("CAS-") == 0
? query.ticketnumber
: query.ticketnumber.split("-").join(" ");
let developmentQuery = query.ticketnumber;
const searchResultsObj = await getBasicSearch(developmentQuery);
const searchDetailsObj = await getSearchDetails(searchResultsObj);
@@ -198,10 +193,10 @@ export const getServerSideProps = wrapper.getServerSideProps(
store.dispatch(setSearch(developmentQuery));
console.log(
searchResultsObj["@odata.count"] > 1 ||
searchResultsObj["@odata.count"] < 1
);
// console.log(
// searchResultsObj["@odata.count"] > 1 ||
// searchResultsObj["@odata.count"] < 1
// );
if (searchResultsObj["@odata.count"] < 1) {
return {
@@ -386,14 +381,14 @@ const getDetails = (resultsObj, detailsType) => {
case "myCases":
caseID = data.pinswg_title;
break;
case "myWatchedCases":
case "mySubmittedReps":
caseID =
data[
"_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue"
];
break;
case "mySubmittedReps":
case "awaitingSubmission":
case "myWatchedCases":
case "myRepresentations":
caseID = data.ticketnumber;
break;
@@ -418,12 +413,12 @@ const getDetails = (resultsObj, detailsType) => {
caseID = searchDetail.pinswg_title;
break;
case "myWatchedCases":
case "mySubmittedReps":
caseID =
searchDetail[
"_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue"
];
break;
case "mySubmittedReps":
case "awaitingSubmission":
caseID = searchDetail.ticketnumber;
break;
+4
View File
@@ -79,6 +79,10 @@ const CaseHome = (props) => {
props.awaitingSubmission.awaitingSubmission
}
caseReference={
props.searchResultsObj.searchResultsObj.value[0]
.caseReference
}
ticketnumber={
props.searchResultsObj.searchResultsObj.value[0]
.ticketnumber
}