backend api service for Count incoming pending connection requests for sidebar badge.

This commit is contained in:
2026-06-21 13:24:15 +03:30
parent cad6fbaa6c
commit 4e2a9765bc
2 changed files with 31 additions and 0 deletions

View File

@@ -160,6 +160,29 @@ export class OrganizationService {
};
}
/** Lightweight count for sidebar badge — incoming PENDING requests only. */
async countIncomingPendingConnections(userId: string, organizationId: string) {
const actor = await this.getActorMembership(userId, organizationId);
if (!actor || !this.canEditOrganizations(actor)) {
throw new ForbiddenException('You do not have permission to manage organizations');
}
const links = await this.prisma.organizationLink.findMany({
where: {
status: LinkStatus.PENDING,
OR: [{ organizationAId: organizationId }, { organizationBId: organizationId }],
},
select: { sharedDataTypes: true },
});
const count = links.filter((link) => {
const requesterOrgId = this.getRequesterOrganizationId(link.sharedDataTypes);
return requesterOrgId !== null && requesterOrgId !== organizationId;
}).length;
return { success: true, data: { count } };
}
async listInvitationHistory(userId: string, organizationId: string) {
const actor = await this.getActorMembership(userId, organizationId);
if (!actor || !this.canEditOrganizations(actor)) {