Added parameter affiliates.
This commit is contained in:
parent
8967907893
commit
488d1082e4
|
@ -149,8 +149,15 @@ async function fetchEntity(scroll = true) {
|
||||||
|
|
||||||
this.pageTitle = entity.name;
|
this.pageTitle = entity.name;
|
||||||
|
|
||||||
const campaign = entity.campaigns.find(campaignX => !campaignX.banner);
|
const campaign = entity.campaigns.find(campaignX => !campaignX.banner)
|
||||||
this.entityUrl = campaign?.url || campaign?.affiliate?.url || entity.url;
|
|| entity.parent?.campaigns.find(campaignX => !campaignX.banner);
|
||||||
|
|
||||||
|
const affiliateParams = new URLSearchParams({
|
||||||
|
...(entity.url && Object.fromEntries(new URL(entity.url).searchParams)), // preserve any query in entity URL, e.g. ?siteId=5
|
||||||
|
...(campaign?.affiliate?.parameters && Object.fromEntries(new URLSearchParams(campaign.affiliate.parameters))), // append affiliate parameters
|
||||||
|
}).toString();
|
||||||
|
|
||||||
|
this.entityUrl = campaign?.url || campaign?.affiliate?.url || `${entity.url}${campaign?.affiliate?.parameters ? `?${affiliateParams}` : ''}`;
|
||||||
|
|
||||||
if (scroll && this.$refs.filter?.$el) {
|
if (scroll && this.$refs.filter?.$el) {
|
||||||
this.$refs.filter.$el.scrollIntoView();
|
this.$refs.filter.$el.scrollIntoView();
|
||||||
|
|
|
@ -122,6 +122,7 @@ const campaignsFragment = `
|
||||||
affiliate {
|
affiliate {
|
||||||
id
|
id
|
||||||
url
|
url
|
||||||
|
parameters
|
||||||
}
|
}
|
||||||
banner {
|
banner {
|
||||||
id
|
id
|
||||||
|
|
|
@ -1285,8 +1285,10 @@ exports.up = knex => Promise.resolve()
|
||||||
.inTable('entities');
|
.inTable('entities');
|
||||||
|
|
||||||
table.text('url');
|
table.text('url');
|
||||||
|
table.text('parameters');
|
||||||
|
|
||||||
table.unique(['entity_id', 'url']);
|
table.unique(['entity_id', 'url']);
|
||||||
|
table.unique(['entity_id', 'parameters']);
|
||||||
|
|
||||||
table.text('comment');
|
table.text('comment');
|
||||||
|
|
||||||
|
@ -1578,6 +1580,12 @@ exports.up = knex => Promise.resolve()
|
||||||
CREATE FUNCTION banners_ratio(banner banners) RETURNS numeric AS $$
|
CREATE FUNCTION banners_ratio(banner banners) RETURNS numeric AS $$
|
||||||
SELECT ROUND(banner.width::decimal / banner.height::decimal, 2);
|
SELECT ROUND(banner.width::decimal / banner.height::decimal, 2);
|
||||||
$$ LANGUAGE SQL STABLE;
|
$$ LANGUAGE SQL STABLE;
|
||||||
|
|
||||||
|
CREATE FUNCTION get_random_campaign() RETURNS SETOF campaigns AS $$
|
||||||
|
SELECT * FROM campaigns
|
||||||
|
ORDER BY random()
|
||||||
|
LIMIT 1;
|
||||||
|
$$ LANGUAGE sql STABLE;
|
||||||
`);
|
`);
|
||||||
})
|
})
|
||||||
// POLICIES
|
// POLICIES
|
||||||
|
@ -1824,6 +1832,7 @@ exports.down = (knex) => { // eslint-disable-line arrow-body-style
|
||||||
DROP POLICY IF EXISTS stashes_policy ON stashes_actors;
|
DROP POLICY IF EXISTS stashes_policy ON stashes_actors;
|
||||||
|
|
||||||
DROP FUNCTION IF EXISTS current_user_id;
|
DROP FUNCTION IF EXISTS current_user_id;
|
||||||
|
DROP FUNCTION IF EXISTS get_random_campaign;
|
||||||
|
|
||||||
DROP TABLE IF EXISTS releases_search_results;
|
DROP TABLE IF EXISTS releases_search_results;
|
||||||
`);
|
`);
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
|
@ -7,6 +7,12 @@ const affiliates = [
|
||||||
url: 'https://join.archangelvideo.com/track/MzQ3LjEuMS4xLjAuMC4wLjAuMA',
|
url: 'https://join.archangelvideo.com/track/MzQ3LjEuMS4xLjAuMC4wLjAuMA',
|
||||||
comment: 'revshare',
|
comment: 'revshare',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 'kink_params',
|
||||||
|
network: 'kink',
|
||||||
|
parameters: 't=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
|
||||||
|
comment: '50%',
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const banners = [
|
const banners = [
|
||||||
|
@ -465,7 +471,7 @@ const campaigns = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
network: 'kink',
|
network: 'kink',
|
||||||
url: 'https://www.kink.com/shoots/latest?t=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
|
affiliate: 'kink_params',
|
||||||
comment: '50%',
|
comment: '50%',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -673,6 +679,7 @@ exports.seed = async knex => Promise.resolve()
|
||||||
id: affiliate.id,
|
id: affiliate.id,
|
||||||
entity_id: networksBySlug[affiliate.network]?.id || channelsBySlug[affiliate.channel]?.id || null,
|
entity_id: networksBySlug[affiliate.network]?.id || channelsBySlug[affiliate.channel]?.id || null,
|
||||||
url: affiliate.url,
|
url: affiliate.url,
|
||||||
|
parameters: affiliate.parameters,
|
||||||
comment: affiliate.comment,
|
comment: affiliate.comment,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue