Updated the logic to retrieve the default savedSearchNumber dynamically

This commit is contained in:
2026-10-26 11:39:21 -03:00
parent 0f1f399d1a
commit 45428c9626
7 changed files with 118 additions and 29 deletions

View File

@@ -21,7 +21,7 @@ function createDebugContentView({
function getRequestCategory(entry) {
if (/^request(?:CurrentUser|TokenRelay|ConsumerTokenService|CustomerTokenService)/.test(entry.name)) return "authentication";
if (entry.name === "requestOpportunities") return "opportunities";
if (["requestOpportunities", "requestOpportunitiesSavedSearch"].includes(entry.name)) return "opportunities";
if (entry.name === "requestOpptyProducts") return "products";
if (["requestWlActions", "requestActionTeamMembers", "requestActionFindLookup", "requestMgmtAction"].includes(entry.name)) return "actions";
if (entry.name === "requestGenerateAiSummary") return "ai";

View File

@@ -11,12 +11,29 @@ function createFusionOpportunities({
environment
}) {
const { fetch } = environment;
async function requestOpportunitiesPage(token, period, dateRange, offset, accumulatedItems, requestVersion, page) {
async function requestOpportunitiesSavedSearch(token) {
const url = OPPORTUNITIES_QUERY_URL + "?access=userAdmin&applications=461e5791-9f15-4cd1-b5cd-19e8480cbce4&entity=Opportunity&language=en&limit=-1&returnIdentifierOnlyFields=true";
const headers = { Accept: "application/json", Authorization: `Bearer ${token}` };
const entry = logRequestStart({ name: "requestOpportunitiesSavedSearch", method: "GET", url, headers });
try {
const response = await fetch.call(environment.window, url, { method: "GET", credentials: "include", headers });
logRequestSuccess(entry, response, await readResponseBodyForDebug(response));
if (!response.ok) throw new Error(`requestOpportunitiesSavedSearch failed with status ${response.status}.`);
const data = await response.json();
if (!Array.isArray(data?.items)) throw new Error("requestOpportunitiesSavedSearch returned an invalid response.");
const defaults = data.items.filter(item => item.isDefault === true);
if (defaults.length !== 1 || typeof defaults[0].savedSearchNumber !== "string" || !defaults[0].savedSearchNumber.trim()) throw new Error("A unique default Opportunity saved search with savedSearchNumber was not returned.");
return defaults[0].savedSearchNumber.trim();
} catch (error) { logRequestFailure(entry, error.message); throw error; }
}
async function requestOpportunitiesPage(token, period, dateRange, offset, accumulatedItems, requestVersion, page, savedSearchNumber) {
if (!isCurrentPeriodRequest(requestVersion)) {
return null;
}
const payload = createOpportunitiesQueryPayload(dateRange, offset);
if (!savedSearchNumber) savedSearchNumber = await requestOpportunitiesSavedSearch(token);
if (!isCurrentPeriodRequest(requestVersion)) return null;
const payload = createOpportunitiesQueryPayload(dateRange, offset, savedSearchNumber);
const requestBody = JSON.stringify(payload);
const requestEntry = logRequestStart({
name: "requestOpportunities",
@@ -40,7 +57,7 @@ function createFusionOpportunities({
});
try {
const response = await fetch(OPPORTUNITIES_QUERY_URL, {
const response = await fetch.call(environment.window, OPPORTUNITIES_QUERY_URL, {
method: "POST",
credentials: "include",
headers: {
@@ -84,7 +101,8 @@ function createFusionOpportunities({
currentOffset + receivedCount,
allItems,
requestVersion,
page + 1
page + 1,
savedSearchNumber
);
} catch (error) {
logRequestFailure(requestEntry, error.message || "Request failed.");
@@ -92,7 +110,8 @@ function createFusionOpportunities({
}
}
function createOpportunitiesQueryPayload(dateRange, offset) {
function createOpportunitiesQueryPayload(dateRange, offset, savedSearchNumber) {
if (typeof savedSearchNumber !== "string" || !savedSearchNumber.trim()) throw new Error("Missing default Opportunity savedSearchNumber.");
return {
aggregationResults: false,
applications: ["ORACLE-ISS-APP"],
@@ -160,11 +179,11 @@ function createFusionOpportunities({
language: "en",
skipInValidFields: true,
skipHiddenFromUIFields: true,
copiedFrom: "queries/d5dbcd01-9ff3-40be-9b5b-64744cbf7162",
copiedFrom: "queries/" + savedSearchNumber,
limit: OPPORTUNITIES_PAGE_LIMIT,
offset
};
}
return { requestOpportunitiesPage, createOpportunitiesQueryPayload };
return { requestOpportunitiesPage, createOpportunitiesQueryPayload, requestOpportunitiesSavedSearch };
}