add temporary log to investigate on deletion logic (#10955)
related to [611](https://github.com/twentyhq/core-team-issues/issues/611)
This commit is contained in:
@ -1,4 +1,4 @@
|
|||||||
import { BadRequestException, Injectable } from '@nestjs/common';
|
import { BadRequestException, Injectable, Logger } from '@nestjs/common';
|
||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
|
|
||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
@ -49,6 +49,7 @@ import { extractVersionMajorMinorPatch } from 'src/utils/version/extract-version
|
|||||||
// eslint-disable-next-line @nx/workspace-inject-workspace-repository
|
// eslint-disable-next-line @nx/workspace-inject-workspace-repository
|
||||||
export class WorkspaceService extends TypeOrmQueryService<Workspace> {
|
export class WorkspaceService extends TypeOrmQueryService<Workspace> {
|
||||||
private readonly featureLookUpKey = BillingEntitlementKey.CUSTOM_DOMAIN;
|
private readonly featureLookUpKey = BillingEntitlementKey.CUSTOM_DOMAIN;
|
||||||
|
protected readonly logger = new Logger(WorkspaceService.name);
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@InjectRepository(Workspace, 'core')
|
@InjectRepository(Workspace, 'core')
|
||||||
@ -298,6 +299,12 @@ export class WorkspaceService extends TypeOrmQueryService<Workspace> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async deleteWorkspace(id: string, softDelete = false) {
|
async deleteWorkspace(id: string, softDelete = false) {
|
||||||
|
//TODO: delete all logs when #611 closed
|
||||||
|
|
||||||
|
this.logger.log(
|
||||||
|
`${softDelete ? 'Soft' : 'Hard'} deleting workspace ${id} ...`,
|
||||||
|
);
|
||||||
|
|
||||||
const workspace = await this.workspaceRepository.findOne({
|
const workspace = await this.workspaceRepository.findOne({
|
||||||
where: { id },
|
where: { id },
|
||||||
withDeleted: true,
|
withDeleted: true,
|
||||||
@ -328,6 +335,8 @@ export class WorkspaceService extends TypeOrmQueryService<Workspace> {
|
|||||||
if (softDelete) {
|
if (softDelete) {
|
||||||
await this.workspaceRepository.softDelete({ id });
|
await this.workspaceRepository.softDelete({ id });
|
||||||
|
|
||||||
|
this.logger.log(`workspace ${id} soft deleted`);
|
||||||
|
|
||||||
return workspace;
|
return workspace;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -339,6 +348,8 @@ export class WorkspaceService extends TypeOrmQueryService<Workspace> {
|
|||||||
);
|
);
|
||||||
await this.workspaceRepository.delete(id);
|
await this.workspaceRepository.delete(id);
|
||||||
|
|
||||||
|
this.logger.log(`workspace ${id} hard deleted`);
|
||||||
|
|
||||||
return workspace;
|
return workspace;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -254,25 +254,41 @@ export class WorkspaceManagerService {
|
|||||||
* @param workspaceId
|
* @param workspaceId
|
||||||
*/
|
*/
|
||||||
public async delete(workspaceId: string): Promise<void> {
|
public async delete(workspaceId: string): Promise<void> {
|
||||||
|
//TODO: delete all logs when #611 closed
|
||||||
|
this.logger.log(`Deleting workspace ${workspaceId} ...`);
|
||||||
|
|
||||||
// Delete data from metadata tables
|
// Delete data from metadata tables
|
||||||
await this.relationMetadataRepository.delete({
|
await this.relationMetadataRepository.delete({
|
||||||
workspaceId,
|
workspaceId,
|
||||||
});
|
});
|
||||||
|
this.logger.log(`workspace ${workspaceId} relation metadata deleted`);
|
||||||
|
|
||||||
await this.fieldMetadataRepository.delete({
|
await this.fieldMetadataRepository.delete({
|
||||||
workspaceId,
|
workspaceId,
|
||||||
});
|
});
|
||||||
|
this.logger.log(`workspace ${workspaceId} field metadata deleted`);
|
||||||
|
|
||||||
await this.userWorkspaceRoleRepository.delete({
|
await this.userWorkspaceRoleRepository.delete({
|
||||||
workspaceId,
|
workspaceId,
|
||||||
});
|
});
|
||||||
|
this.logger.log(`workspace ${workspaceId} user workspace role deleted`);
|
||||||
|
|
||||||
await this.roleRepository.delete({
|
await this.roleRepository.delete({
|
||||||
workspaceId,
|
workspaceId,
|
||||||
});
|
});
|
||||||
|
this.logger.log(`workspace ${workspaceId} role deleted`);
|
||||||
|
|
||||||
await this.objectMetadataService.deleteObjectsMetadata(workspaceId);
|
await this.objectMetadataService.deleteObjectsMetadata(workspaceId);
|
||||||
|
this.logger.log(`workspace ${workspaceId} object metadata deleted`);
|
||||||
|
|
||||||
await this.workspaceMigrationService.deleteAllWithinWorkspace(workspaceId);
|
await this.workspaceMigrationService.deleteAllWithinWorkspace(workspaceId);
|
||||||
|
this.logger.log(`workspace ${workspaceId} migration deleted`);
|
||||||
|
|
||||||
await this.dataSourceService.delete(workspaceId);
|
await this.dataSourceService.delete(workspaceId);
|
||||||
|
this.logger.log(`workspace ${workspaceId} data source deleted`);
|
||||||
// Delete schema
|
// Delete schema
|
||||||
await this.workspaceDataSourceService.deleteWorkspaceDBSchema(workspaceId);
|
await this.workspaceDataSourceService.deleteWorkspaceDBSchema(workspaceId);
|
||||||
|
this.logger.log(`workspace ${workspaceId} schema deleted`);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async initPermissions({
|
private async initPermissions({
|
||||||
|
|||||||
Reference in New Issue
Block a user