Compare commits

...

2 Commits

3 changed files with 15 additions and 7 deletions

4
package-lock.json generated
View File

@ -1,11 +1,11 @@
{ {
"name": "traxxx-web", "name": "traxxx-web",
"version": "0.42.15", "version": "0.42.16",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"version": "0.42.15", "version": "0.42.16",
"dependencies": { "dependencies": {
"@brillout/json-serializer": "^0.5.8", "@brillout/json-serializer": "^0.5.8",
"@dicebear/collection": "^7.0.5", "@dicebear/collection": "^7.0.5",

View File

@ -87,7 +87,7 @@
"overrides": { "overrides": {
"vite": "$vite" "vite": "$vite"
}, },
"version": "0.42.15", "version": "0.42.16",
"imports": { "imports": {
"#/*": "./*.js" "#/*": "./*.js"
} }

View File

@ -194,14 +194,22 @@ export async function fetchScenesById(sceneIds, { reqUser, ...context } = {}) {
'networks.name as network_name', 'networks.name as network_name',
'networks.type as network_type', 'networks.type as network_type',
'networks.has_logo as network_has_logo', 'networks.has_logo as network_has_logo',
knex.raw('row_to_json(coalesce(channel_affiliates, network_affiliates)) as affiliate'), knex.raw('row_to_json(affiliates) as affiliate'),
) )
.whereIn('releases.id', sceneIds) .whereIn('releases.id', sceneIds)
.leftJoin('entities as channels', 'channels.id', 'releases.entity_id') .leftJoin('entities as channels', 'channels.id', 'releases.entity_id')
.leftJoin('entities as networks', 'networks.id', 'channels.parent_id') .leftJoin('entities as networks', 'networks.id', 'channels.parent_id')
.leftJoin('affiliates as channel_affiliates', 'channel_affiliates.entity_id', 'channels.id') // .leftJoin('affiliates as channel_affiliates', 'channel_affiliates.entity_id', 'channels.id')
.leftJoin('affiliates as network_affiliates', 'network_affiliates.entity_id', 'networks.id') // .leftJoin('affiliates as network_affiliates', 'network_affiliates.entity_id', 'networks.id')
.groupBy('channels.id', 'networks.id', 'channel_affiliates.id', 'network_affiliates.id'), .joinRaw(`
left join lateral (
select *
from affiliates
where affiliates.entity_id in (channels.id, networks.id)
order by (affiliates.entity_id = channels.id) desc
limit 1
) affiliates ON TRUE
`),
studios: knex('releases') studios: knex('releases')
.whereIn('releases.id', sceneIds) .whereIn('releases.id', sceneIds)
.leftJoin('entities as studios', 'studios.id', 'releases.studio_id'), .leftJoin('entities as studios', 'studios.id', 'releases.studio_id'),