Expanded and improved campaigns.
This commit is contained in:
@@ -23,11 +23,7 @@ function curateCampaign(campaign) {
|
||||
height: campaign.banner.height,
|
||||
ratio: campaign.banner.ratio,
|
||||
entity: campaign.banner_entity && curateEntity({ ...campaign.banner_entity, parent: campaign.banner_parent_entity }),
|
||||
tags: campaign.banner_tags?.map((tag) => ({
|
||||
id: tag.id,
|
||||
slug: tag.slug,
|
||||
name: tag.name,
|
||||
})) || [],
|
||||
tags: campaign.banner_tags || [],
|
||||
},
|
||||
affiliate: campaign.affiliate && {
|
||||
id: campaign.affiliate.id,
|
||||
@@ -37,7 +33,7 @@ function curateCampaign(campaign) {
|
||||
};
|
||||
}
|
||||
|
||||
export async function getRandomCampaign(options = {}) {
|
||||
export async function getRandomCampaign(options = {}, context = {}) {
|
||||
const campaigns = options.campaigns
|
||||
|| await redis.hGetAll('traxxx:campaigns').then((rawCampaigns) => Object.values(rawCampaigns).map((rawCampaign) => JSON.parse(rawCampaign)));
|
||||
|
||||
@@ -54,6 +50,10 @@ export async function getRandomCampaign(options = {}) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (context.tagFilter && campaign.banner && campaign.banner.tags.some((tag) => context.tagFilter.includes(tag))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
@@ -70,14 +70,14 @@ export async function getRandomCampaign(options = {}) {
|
||||
return null;
|
||||
}
|
||||
|
||||
export async function getRandomCampaigns(allOptions = []) {
|
||||
export async function getRandomCampaigns(allOptions = [], context = {}) {
|
||||
const rawCampaigns = await redis.hGetAll('traxxx:campaigns');
|
||||
const campaigns = Object.values(rawCampaigns).map((rawCampaign) => JSON.parse(rawCampaign));
|
||||
|
||||
return Promise.all(allOptions.map(async (options) => getRandomCampaign({
|
||||
...options,
|
||||
campaigns,
|
||||
})));
|
||||
}, context)));
|
||||
}
|
||||
|
||||
export async function cacheCampaigns() {
|
||||
|
||||
Reference in New Issue
Block a user