Improved banner URL calculation.

This commit is contained in:
2026-02-02 23:48:13 +01:00
parent 750b30d896
commit 5b53f53fd3
4 changed files with 36 additions and 17 deletions

View File

@@ -4,17 +4,33 @@ import { knexOwner as knex } from './knex.js';
import { curateEntity } from './entities.js';
import redis from './redis.js';
import initLogger from './logger.js';
import { getAffiliateEntityUrl } from './affiliates.js';
const logger = initLogger();
function getCampaignUrl(campaign) {
if (!campaign) {
return null;
}
if (campaign.url) {
return campaign.url;
}
if (campaign.entity) {
return getAffiliateEntityUrl(campaign.entity, campaign.affiliate);
}
return null;
}
function curateCampaign(campaign) {
if (!campaign) {
return null;
}
return {
const curatedCampaign = {
id: campaign.id,
url: campaign.url,
entity: campaign.entity && curateEntity({ ...campaign.entity, parent: campaign.parent_entity }),
banner: campaign.banner && {
id: campaign.banner.id,
@@ -31,6 +47,10 @@ function curateCampaign(campaign) {
parameters: campaign.affiliate.parameters,
},
};
curatedCampaign.url = getCampaignUrl(curatedCampaign);
return curatedCampaign;
}
function selectRandomCampaign(primaryCampaigns, entityCampaigns, preferredCampaigns) {