Improve use set next onboarding state (#6076)

querying workspaceMembers may be slow leads to wrong
setNextOnboardingStatus value. So we added a resolved field in workspace
to get workspaceMemberCount directly
This commit is contained in:
martmull
2024-06-30 21:00:20 +02:00
committed by GitHub
parent 411fddd8d7
commit cce9bf5730
10 changed files with 125 additions and 33 deletions

View File

@ -87,6 +87,9 @@ export class Workspace {
@Field({ nullable: true })
currentBillingSubscription: BillingSubscription;
@Field({ nullable: true })
workspaceMembersCount: number;
@Field()
activationStatus: 'active' | 'inactive';

View File

@ -27,6 +27,7 @@ import { DemoEnvGuard } from 'src/engine/guards/demo.env.guard';
import { WorkspaceCacheVersionService } from 'src/engine/metadata-modules/workspace-cache-version/workspace-cache-version.service';
import { SendInviteLink } from 'src/engine/core-modules/workspace/dtos/send-invite-link.entity';
import { SendInviteLinkInput } from 'src/engine/core-modules/workspace/dtos/send-invite-link.input';
import { UserWorkspaceService } from 'src/engine/core-modules/user-workspace/user-workspace.service';
import { Workspace } from './workspace.entity';
@ -38,6 +39,7 @@ export class WorkspaceResolver {
constructor(
private readonly workspaceService: WorkspaceService,
private readonly workspaceCacheVersionService: WorkspaceCacheVersionService,
private readonly userWorkspaceService: UserWorkspaceService,
private readonly fileUploadService: FileUploadService,
private readonly billingService: BillingService,
) {}
@ -125,6 +127,11 @@ export class WorkspaceResolver {
});
}
@ResolveField(() => Number)
async workspaceMembersCount(): Promise<number | undefined> {
return await this.userWorkspaceService.getWorkspaceMemberCount();
}
@Mutation(() => SendInviteLink)
async sendInviteLink(
@Args() sendInviteLinkInput: SendInviteLinkInput,