@scayle/storefront-nuxt
Version:
Nuxt integration for the SCAYLE Commerce Engine and Storefront API
27 lines (26 loc) • 747 B
JavaScript
import {
isCampaignActive,
campaignHasNotEnded,
sortCampaignsByDateAscending
} from "@scayle/storefront-core";
export const fetchCampaignKey = async (sapiClient, cached, log) => {
try {
const { campaigns } = await cached(
async () => {
const { entities } = await sapiClient.campaigns.get();
return {
campaigns: entities.filter((campaign) => {
return campaignHasNotEnded(campaign);
}).sort(sortCampaignsByDateAscending)
};
},
{
cacheKeyPrefix: "fetch-campaignKey",
ttl: 5 * 60
}
)();
return campaigns.find(isCampaignActive)?.key;
} catch (error) {
log.error("Failed to get or process the campaigns from SAPI.", error);
}
};