fix: album comment count including trashed assets (#19117)

This commit is contained in:
Zack Pollard 2025-06-11 16:50:26 +01:00 committed by GitHub
parent 5dd3a6e13f
commit 08e2b22db8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 8 deletions

View File

@ -75,8 +75,13 @@ from
inner join "users" on "users"."id" = "activity"."userId"
and "users"."deletedAt" is null
left join "assets" on "assets"."id" = "activity"."assetId"
and "assets"."deletedAt" is null
and "assets"."visibility" != 'locked'
where
"activity"."assetId" = $3
and "activity"."albumId" = $4
and (
(
"assets"."deletedAt" is null
and "assets"."visibility" != 'locked'
)
or "assets"."id" is null
)

View File

@ -82,14 +82,15 @@ export class ActivityRepository {
eb.fn.countAll<number>().filterWhere('activity.isLiked', '=', true).as('likes'),
])
.innerJoin('users', (join) => join.onRef('users.id', '=', 'activity.userId').on('users.deletedAt', 'is', null))
.leftJoin('assets', (join) =>
join
.onRef('assets.id', '=', 'activity.assetId')
.on('assets.deletedAt', 'is', null)
.on('assets.visibility', '!=', sql.lit(AssetVisibility.LOCKED)),
)
.leftJoin('assets', 'assets.id', 'activity.assetId')
.$if(!!assetId, (qb) => qb.where('activity.assetId', '=', assetId!))
.where('activity.albumId', '=', albumId)
.where(({ or, and, eb }) =>
or([
and([eb('assets.deletedAt', 'is', null), eb('assets.visibility', '!=', sql.lit(AssetVisibility.LOCKED))]),
eb('assets.id', 'is', null),
]),
)
.executeTakeFirstOrThrow();
return result;