Fixed banner URL not resolving to affiliate definition.

This commit is contained in:
2026-02-03 00:04:29 +01:00
parent 5194c5e156
commit 515d3885c7
2 changed files with 13 additions and 4 deletions

View File

@@ -38,6 +38,8 @@ const props = defineProps({
}, },
}); });
// console.log(props.campaign);
const bannerSrc = (() => { const bannerSrc = (() => {
if (props.campaign.banner) { if (props.campaign.banner) {
if (props.campaign.banner.entity.type === 'network' || !props.campaign.banner.entity.parent) { if (props.campaign.banner.entity.type === 'network' || !props.campaign.banner.entity.parent) {

View File

@@ -8,7 +8,7 @@ import { getAffiliateEntityUrl } from './affiliates.js';
const logger = initLogger(); const logger = initLogger();
function getCampaignUrl(campaign) { function getCampaignUrl(campaign, entity) {
if (!campaign) { if (!campaign) {
return null; return null;
} }
@@ -17,8 +17,13 @@ function getCampaignUrl(campaign) {
return campaign.url; return campaign.url;
} }
if (campaign.affiliate?.url) {
return campaign.affiliate.url;
}
if (campaign.entity) { if (campaign.entity) {
return getAffiliateEntityUrl(campaign.entity, campaign.affiliate); // resolve e.g. parameter tracking
return getAffiliateEntityUrl(entity, campaign.affiliate);
} }
return null; return null;
@@ -29,9 +34,11 @@ function curateCampaign(campaign) {
return null; return null;
} }
const entity = campaign.entity && curateEntity({ ...campaign.entity, parent: campaign.parent_entity });
const curatedCampaign = { const curatedCampaign = {
id: campaign.id, id: campaign.id,
entity: campaign.entity && curateEntity({ ...campaign.entity, parent: campaign.parent_entity }), entity,
banner: campaign.banner && { banner: campaign.banner && {
id: campaign.banner.id, id: campaign.banner.id,
type: campaign.banner.type, type: campaign.banner.type,
@@ -48,7 +55,7 @@ function curateCampaign(campaign) {
}, },
}; };
curatedCampaign.url = getCampaignUrl(curatedCampaign); curatedCampaign.url = getCampaignUrl(campaign, entity);
return curatedCampaign; return curatedCampaign;
} }