Implemented the customer rate card view, including SKU search
This commit is contained in:
41
dist/firefox/background.js
vendored
41
dist/firefox/background.js
vendored
@@ -14,7 +14,8 @@ function createMessageTypes() {
|
||||
requestInstallBase: "opportunitiesExtension.requestInstallBase",
|
||||
requestCustomerServiceRequest: "opportunitiesExtension.requestCustomerServiceRequest",
|
||||
requestConsumptionTrend: "opportunitiesExtension.requestConsumptionTrend",
|
||||
requestConsumptionPlanDetail: "opportunitiesExtension.requestConsumptionPlanDetail"
|
||||
requestConsumptionPlanDetail: "opportunitiesExtension.requestConsumptionPlanDetail",
|
||||
requestRatecardByPlan: "opportunitiesExtension.requestRatecardByPlan"
|
||||
});
|
||||
}
|
||||
|
||||
@@ -649,7 +650,31 @@ function createSpaConsumption({
|
||||
}
|
||||
}
|
||||
|
||||
return { requestConsumptionTrend, requestConsumptionPlanDetail };
|
||||
async function requestRatecardByPlan(message) {
|
||||
const debugRequests = [];
|
||||
try {
|
||||
const planNumber = typeof message.planNumber === "string" ? message.planNumber.trim() : "";
|
||||
const authorization = normalizeMessageAuthorization(message.authorization, "g2m-authorization");
|
||||
if (!planNumber) throw new Error("Plan number is required for the rate card.");
|
||||
if (!authorization.value) throw new Error("OCICONS-TS authorization is unavailable for the rate card.");
|
||||
const items = await fetchJson("https://spa.oracle.com/oalcrm/web/api/provider-proxy/g2m-consumption/service/v1/ratecard/byPlan", {
|
||||
method: "POST", credentials: "include", cache: "no-store",
|
||||
headers: { Accept: "application/json", "Content-Type": "application/json", "G2m-Authorization": authorization.value },
|
||||
body: JSON.stringify({ planNumber, recordsSize: 10000 })
|
||||
}, "requestRatecardByPlan", debugRequests);
|
||||
if (!Array.isArray(items) || items.some(item => !item || typeof item !== "object" || Array.isArray(item))) {
|
||||
throw new Error("requestRatecardByPlan returned invalid rate card items.");
|
||||
}
|
||||
return { ok: true, planNumber, items, debugRequests };
|
||||
} catch (error) {
|
||||
const entry = debugRequests[debugRequests.length - 1];
|
||||
if (entry && entry.status === "success") { entry.status = "failed"; entry.error = error.message; }
|
||||
error.debugRequests = debugRequests;
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
return { requestConsumptionTrend, requestConsumptionPlanDetail, requestRatecardByPlan };
|
||||
}
|
||||
|
||||
// Source: src/services/spa/response-shapes.js
|
||||
@@ -1607,6 +1632,7 @@ function registerBackgroundMessages({
|
||||
requestConsumerTokenService,
|
||||
requestConsumptionTrend,
|
||||
requestConsumptionPlanDetail,
|
||||
requestRatecardByPlan,
|
||||
requestOpptyProducts,
|
||||
runtimeApi
|
||||
}) {
|
||||
@@ -1714,6 +1740,14 @@ runtimeApi.runtime.onMessage.addListener((message, sender, sendResponse) => {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (message.type === messageTypes.requestRatecardByPlan) {
|
||||
requestRatecardByPlan(message).then(sendResponse).catch(error => sendResponse({
|
||||
ok: false, error: error.message || "Unable to load rate card.",
|
||||
debugRequests: Array.isArray(error.debugRequests) ? error.debugRequests : []
|
||||
}));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (message.type === messageTypes.requestConsumptionPlanDetail) {
|
||||
requestConsumptionPlanDetail(message).then(sendResponse).catch(error => sendResponse({
|
||||
ok: false, error: error.message || "Unable to load consumption plan details.",
|
||||
@@ -1857,10 +1891,11 @@ function createBackgroundApplication(overrides = {}) {
|
||||
const requestConsumerTokenService = (...args) => authConsumerSession.requestConsumerTokenService(...args);
|
||||
const requestConsumptionTrend = (...args) => spaConsumption.requestConsumptionTrend(...args);
|
||||
const requestConsumptionPlanDetail = (...args) => spaConsumption.requestConsumptionPlanDetail(...args);
|
||||
const requestRatecardByPlan = (...args) => spaConsumption.requestRatecardByPlan(...args);
|
||||
const requestOpptyProducts = (...args) => productsBackgroundJobs.requestOpptyProducts(...args);
|
||||
const runtimeApi = environment.browser || environment.chrome;
|
||||
function start() {
|
||||
startBackgroundApplication({ messageTypes, getXsrfTokenCookie, refreshXsrfCookie, requestAccountPlans, requestInstallBase, requestCustomerServiceRequest, requestConsumerTokenService, requestConsumptionTrend, requestConsumptionPlanDetail, requestOpptyProducts, runtimeApi });
|
||||
startBackgroundApplication({ messageTypes, getXsrfTokenCookie, refreshXsrfCookie, requestAccountPlans, requestInstallBase, requestCustomerServiceRequest, requestConsumerTokenService, requestConsumptionTrend, requestConsumptionPlanDetail, requestRatecardByPlan, requestOpptyProducts, runtimeApi });
|
||||
}
|
||||
return {
|
||||
start, contracts,
|
||||
|
||||
Reference in New Issue
Block a user