3959 create a activationstatus in coreworkspace and use it in front to redirect properly (#3989)

* Add computed field to workspace entity

* Add activationStatus to front requests

* Update Selector

* Use activation status

* Stop using selector for mock values

* Remove isCurrentWorkspaceActiveSelector

* Use activation status

* Fix typo

* Use activation status

* Create hook for sign in up navigate

* Update hook to handle profile creation

* Use varaible

* Use more readable boolean function
This commit is contained in:
martmull
2024-02-16 16:00:39 +01:00
committed by GitHub
parent 03a1d3aa75
commit 0ee512a983
26 changed files with 165 additions and 105 deletions

View File

@ -35,6 +35,10 @@ export class WorkspaceService extends TypeOrmQueryService<Workspace> {
return user.defaultWorkspace;
}
async isWorkspaceActivated(id: string): Promise<boolean> {
return await this.workspaceManagerService.doesDataSourceExist(id);
}
async deleteWorkspace(id: string, shouldDeleteCoreWorkspace = true) {
const workspace = await this.workspaceRepository.findOneBy({ id });

View File

@ -62,4 +62,7 @@ export class Workspace {
@Field()
@Column({ default: 'incomplete' })
subscriptionStatus: 'incomplete' | 'active' | 'canceled';
@Field()
activationStatus: 'active' | 'inactive';
}

View File

@ -1,4 +1,11 @@
import { Resolver, Query, Args, Mutation } from '@nestjs/graphql';
import {
Resolver,
Query,
Args,
Mutation,
ResolveField,
Parent,
} from '@nestjs/graphql';
import { ForbiddenException, UseGuards } from '@nestjs/common';
import { FileUpload, GraphQLUpload } from 'graphql-upload';
@ -90,4 +97,15 @@ export class WorkspaceResolver {
return this.workspaceService.deleteWorkspace(id);
}
@ResolveField(() => String)
async activationStatus(
@Parent() workspace: Workspace,
): Promise<'active' | 'inactive'> {
if (await this.workspaceService.isWorkspaceActivated(workspace.id)) {
return 'active';
}
return 'inactive';
}
}