fix: count album comments and likes correctly (#19114)

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

View File

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

View File

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