Implemented a tooltip on the SR to display the Internal SR
This commit is contained in:
27
src/services/fusion/sr-details.js
Normal file
27
src/services/fusion/sr-details.js
Normal file
@@ -0,0 +1,27 @@
|
||||
function createFusionSrDetails({ fetchJson }) {
|
||||
async function requestInternalServiceRequest(message) {
|
||||
const debugRequests = [];
|
||||
try {
|
||||
const id = String(message.srId ?? "");
|
||||
if (!/^\d+$/.test(id)) throw new Error("A numeric SrId is required.");
|
||||
const fields = "Title,SrNumber,SrId,OpportunityName_c,QueueManagers_c,StatusCd,resourceMembers;ServiceRequest_SRToInternalSR_Tgt:ReportedHours_c,Title,OpportunityName_c,StatusCd,SrNumber,ServiceNew_c,AccountPartyName,LastUpdateDate,SvcHealth_c,AssigneePersonName,OpenDate,SrId";
|
||||
const url = "https://comcipapic-oalprod.integration.ocp.oraclecloud.com/ic/builder/rt/SeaaS_SR_management/live;profile=PROD/services/auth/1.1/proxy/oalsetCRMRestAPI/uri/https/eeho.fa.us2.oraclecloud.com/crmRestApi/resources/latest/serviceRequests"
|
||||
+ `?fields=${encodeURIComponent(fields)}&onlyData=true&q=${encodeURIComponent(`SrId=${id}`)}`;
|
||||
const result = await fetchJson(url, { method: "GET", credentials: "include",
|
||||
headers: { Accept: "application/json", Authorization: "Session" }
|
||||
}, "requestInternalServiceRequest", debugRequests);
|
||||
if (!Array.isArray(result?.items)) throw new Error("Invalid SR details response.");
|
||||
const items = result.items.flatMap(item => {
|
||||
const children = item.ServiceRequest_SRToInternalSR_Tgt;
|
||||
if (children == null) return [];
|
||||
if (!Array.isArray(children) || children.some(child => !child || typeof child !== "object")) throw new Error("Invalid linked SR collection.");
|
||||
return children;
|
||||
});
|
||||
return { ok: true, items, debugRequests };
|
||||
} catch (error) {
|
||||
error.debugRequests = debugRequests;
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
return { requestInternalServiceRequest };
|
||||
}
|
||||
Reference in New Issue
Block a user