diff --git a/src/helpers/cms-content-helper.js b/src/helpers/cms-content-helper.js index c4767e61..26e684fe 100644 --- a/src/helpers/cms-content-helper.js +++ b/src/helpers/cms-content-helper.js @@ -2,37 +2,56 @@ import { dynamicStrings } from "@/constants/dynamic-strings"; import { useMainStore } from '@/store'; export function fetchCmsContentForPage(issPage) { - return useMainStore().getPageData(issPage) - .then((response) => { - const pageDataFromCms = {}; - - response.data.Result.forEach((widget) => { - let widgetWithReplacements = findAndReplaceGlobalStateValues( - widget.Model, - widget.Name - ); - - // If we already have this widget, push it on the collection - if (widgetWithReplacements.Name in pageDataFromCms) { - pageDataFromCms[widgetWithReplacements.Name].push( - widgetWithReplacements.Model - ); - return; + const store = useMainStore(); + store.order.accountNumber = 10; + const pageName = issPage + (store.order.accountNumber == 0 ? "" : store.order.accountNumber); + + return store.getPageData(pageName) + .then( + // Get the client specific page if it exists. + (response) => { return processPageData(response); }, + (error) => { + // If the client specific page does not exist, get the base page. + if ( store.order.accountNumber != 0 ) + { + return store.getPageData(issPage) + .then((response) => { + return processPageData(response); + }); } + } + ); + } + + function processPageData(response) { + const pageDataFromCms = {}; + + response.data.Result.forEach((widget) => { + let widgetWithReplacements = findAndReplaceGlobalStateValues( + widget.Model, + widget.Name + ); - pageDataFromCms[widgetWithReplacements.Name] = [ - widgetWithReplacements.Model, - ]; - }); + // If we already have this widget, push it on the collection + if (widgetWithReplacements.Name in pageDataFromCms) { + pageDataFromCms[widgetWithReplacements.Name].push( + widgetWithReplacements.Model + ); + return; + } - Object.keys(pageDataFromCms).forEach((key) => { - if (pageDataFromCms[key].length === 1) { - pageDataFromCms[key] = pageDataFromCms[key][0]; - } - }); + pageDataFromCms[widgetWithReplacements.Name] = [ + widgetWithReplacements.Model, + ]; + }); - return pageDataFromCms; - }); + Object.keys(pageDataFromCms).forEach((key) => { + if (pageDataFromCms[key].length === 1) { + pageDataFromCms[key] = pageDataFromCms[key][0]; + } + }); + + return pageDataFromCms; } // Parent function for processWidgetItemForReplacement. This will loop through the parent