fix space member count

* fix space added_by_id
* rename user role change endpoints
This commit is contained in:
Philipinho
2024-05-24 15:59:20 +01:00
parent ccf9d5d99f
commit 046dd6d150
6 changed files with 25 additions and 27 deletions

View File

@ -120,17 +120,25 @@ export class SpaceRepo {
}
withMemberCount(eb: ExpressionBuilder<DB, 'spaces'>) {
return eb
const subquery = eb
.selectFrom('spaceMembers')
.innerJoin('groups', 'groups.id', 'spaceMembers.groupId')
.innerJoin('groupUsers', 'groupUsers.groupId', 'groups.id')
.select((eb) =>
eb.fn
.count(sql`concat(space_members.user_id, group_users.user_id)`)
.distinct()
.as('count'),
)
.select('spaceMembers.userId')
.where('spaceMembers.userId', 'is not', null)
.whereRef('spaceMembers.spaceId', '=', 'spaces.id')
.union(
eb
.selectFrom('spaceMembers')
.where('spaceMembers.groupId', 'is not', null)
.leftJoin('groups', 'groups.id', 'spaceMembers.groupId')
.leftJoin('groupUsers', 'groupUsers.groupId', 'groups.id')
.select('groupUsers.userId')
.whereRef('spaceMembers.spaceId', '=', 'spaces.id'),
)
.as('userId');
return eb
.selectFrom(subquery)
.select((eb) => eb.fn.count('userId').as('count'))
.as('memberCount');
}