Refactor runner delete action to be workspace agnostic (#17276)
# Introduction Straight to the point refactor passing only universalIdentifier in workspace migration delete actions instead of id so it can be run on any workspace Related to https://github.com/orgs/twentyhq/projects/1/views/8?pane=issue&itemId=132343284&issue=twentyhq%7Ccore-team-issues%7C1641
This commit is contained in:
+1
-1
@@ -64,7 +64,7 @@ export class WorkspaceMigrationAgentActionsBuilderService extends WorkspaceEntit
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'agent',
|
||||
entityId: flatAgentToValidate.id,
|
||||
universalIdentifier: flatAgentToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -74,7 +74,7 @@ export class WorkspaceMigrationCommandMenuItemActionsBuilderService extends Work
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'commandMenuItem',
|
||||
entityId: flatCommandMenuItemToValidate.id,
|
||||
universalIdentifier: flatCommandMenuItemToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -74,7 +74,7 @@ export class WorkspaceMigrationCronTriggerActionsBuilderService extends Workspac
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'cronTrigger',
|
||||
entityId: flatCronTriggerToValidate.id,
|
||||
universalIdentifier: flatCronTriggerToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+2
-1
@@ -78,7 +78,8 @@ export class WorkspaceMigrationDatabaseEventTriggerActionsBuilderService extends
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'databaseEventTrigger',
|
||||
entityId: flatDatabaseEventTriggerToValidate.id,
|
||||
universalIdentifier:
|
||||
flatDatabaseEventTriggerToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -72,7 +72,7 @@ export class WorkspaceMigrationFieldActionsBuilderService extends WorkspaceEntit
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'fieldMetadata',
|
||||
entityId: flatFieldMetadataToValidate.id,
|
||||
universalIdentifier: flatFieldMetadataToValidate.universalIdentifier,
|
||||
objectMetadataId: flatFieldMetadataToValidate.objectMetadataId,
|
||||
},
|
||||
};
|
||||
|
||||
+1
-1
@@ -74,7 +74,7 @@ export class WorkspaceMigrationFrontComponentActionsBuilderService extends Works
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'frontComponent',
|
||||
entityId: flatFrontComponentToValidate.id,
|
||||
universalIdentifier: flatFrontComponentToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -70,7 +70,7 @@ export class WorkspaceMigrationIndexActionsBuilderService extends WorkspaceEntit
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'index',
|
||||
entityId: flatIndexToValidate.id,
|
||||
universalIdentifier: flatIndexToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ export class WorkspaceMigrationObjectActionsBuilderService extends WorkspaceEnti
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'objectMetadata',
|
||||
entityId: flatObjectMetadataToValidate.id,
|
||||
universalIdentifier: flatObjectMetadataToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -74,7 +74,7 @@ export class WorkspaceMigrationPageLayoutTabActionsBuilderService extends Worksp
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'pageLayoutTab',
|
||||
entityId: flatPageLayoutTabToValidate.id,
|
||||
universalIdentifier: flatPageLayoutTabToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -74,7 +74,7 @@ export class WorkspaceMigrationPageLayoutWidgetActionsBuilderService extends Wor
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'pageLayoutWidget',
|
||||
entityId: flatPageLayoutWidgetToValidate.id,
|
||||
universalIdentifier: flatPageLayoutWidgetToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -72,7 +72,7 @@ export class WorkspaceMigrationPageLayoutActionsBuilderService extends Workspace
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'pageLayout',
|
||||
entityId: flatPageLayoutToValidate.id,
|
||||
universalIdentifier: flatPageLayoutToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -70,7 +70,7 @@ export class WorkspaceMigrationRoleTargetActionsBuilderService extends Workspace
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'roleTarget',
|
||||
entityId: flatRoleTargetToValidate.id,
|
||||
universalIdentifier: flatRoleTargetToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -64,7 +64,7 @@ export class WorkspaceMigrationRoleActionsBuilderService extends WorkspaceEntity
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'role',
|
||||
entityId: flatRoleToValidate.id,
|
||||
universalIdentifier: flatRoleToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -74,7 +74,7 @@ export class WorkspaceMigrationRouteTriggerActionsBuilderService extends Workspa
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'routeTrigger',
|
||||
entityId: flatRouteTriggerToValidate.id,
|
||||
universalIdentifier: flatRouteTriggerToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+4
-2
@@ -74,7 +74,9 @@ export class WorkspaceMigrationRowLevelPermissionPredicateGroupActionsBuilderSer
|
||||
}
|
||||
|
||||
const {
|
||||
flatEntityToValidate: { id: predicateGroupId },
|
||||
flatEntityToValidate: {
|
||||
universalIdentifier: predicateGroupUniversalIdentifier,
|
||||
},
|
||||
} = args;
|
||||
|
||||
return {
|
||||
@@ -82,7 +84,7 @@ export class WorkspaceMigrationRowLevelPermissionPredicateGroupActionsBuilderSer
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'rowLevelPermissionPredicateGroup',
|
||||
entityId: predicateGroupId,
|
||||
universalIdentifier: predicateGroupUniversalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+4
-2
@@ -74,7 +74,9 @@ export class WorkspaceMigrationRowLevelPermissionPredicateActionsBuilderService
|
||||
}
|
||||
|
||||
const {
|
||||
flatEntityToValidate: { id: predicateId },
|
||||
flatEntityToValidate: {
|
||||
universalIdentifier: predicateUniversalIdentifier,
|
||||
},
|
||||
} = args;
|
||||
|
||||
return {
|
||||
@@ -82,7 +84,7 @@ export class WorkspaceMigrationRowLevelPermissionPredicateActionsBuilderService
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'rowLevelPermissionPredicate',
|
||||
entityId: predicateId,
|
||||
universalIdentifier: predicateUniversalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+2
-1
@@ -114,7 +114,8 @@ export class WorkspaceMigrationServerlessFunctionActionsBuilderService extends W
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'serverlessFunction',
|
||||
entityId: flatServerlessFunctionToValidate.id,
|
||||
universalIdentifier:
|
||||
flatServerlessFunctionToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -64,7 +64,7 @@ export class WorkspaceMigrationSkillActionsBuilderService extends WorkspaceEntit
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'skill',
|
||||
entityId: flatSkillToValidate.id,
|
||||
universalIdentifier: flatSkillToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -68,7 +68,7 @@ export class WorkspaceMigrationViewFieldActionsBuilderService extends WorkspaceE
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'viewField',
|
||||
entityId: flatViewFieldToValidate.id,
|
||||
universalIdentifier: flatViewFieldToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -74,7 +74,7 @@ export class WorkspaceMigrationViewFilterGroupActionsBuilderService extends Work
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'viewFilterGroup',
|
||||
entityId: flatViewFilterGroupToValidate.id,
|
||||
universalIdentifier: flatViewFilterGroupToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -70,7 +70,7 @@ export class WorkspaceMigrationViewFilterActionsBuilderService extends Workspace
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'viewFilter',
|
||||
entityId: flatViewFilterToValidate.id,
|
||||
universalIdentifier: flatViewFilterToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -70,7 +70,7 @@ export class WorkspaceMigrationViewGroupActionsBuilderService extends WorkspaceE
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'viewGroup',
|
||||
entityId: flatViewGroupToValidate.id,
|
||||
universalIdentifier: flatViewGroupToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -64,7 +64,7 @@ export class WorkspaceMigrationViewActionsBuilderService extends WorkspaceEntity
|
||||
action: {
|
||||
type: 'delete',
|
||||
metadataName: 'view',
|
||||
entityId: flatViewToValidate.id,
|
||||
universalIdentifier: flatViewToValidate.universalIdentifier,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
import { type AllMetadataName } from 'twenty-shared/metadata';
|
||||
|
||||
export type BaseDeleteWorkspaceMigrationAction<T extends AllMetadataName> = {
|
||||
entityId: string;
|
||||
universalIdentifier: string;
|
||||
type: 'delete';
|
||||
metadataName: T;
|
||||
};
|
||||
|
||||
+9
-3
@@ -3,6 +3,7 @@ import { Injectable } from '@nestjs/common';
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { AgentEntity } from 'src/engine/metadata-modules/ai/ai-agent/entities/agent.entity';
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { DeleteAgentAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/agent/types/workspace-migration-agent-action-builder.service';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
|
||||
@@ -18,13 +19,18 @@ export class DeleteAgentActionHandlerService extends WorkspaceMigrationRunnerAct
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteAgentAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatAgent = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatAgentMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const agentRepository =
|
||||
queryRunner.manager.getRepository<AgentEntity>(AgentEntity);
|
||||
|
||||
await agentRepository.delete({ id: entityId, workspaceId });
|
||||
await agentRepository.delete({ id: flatAgent.id, workspaceId });
|
||||
}
|
||||
|
||||
async executeForWorkspaceSchema(
|
||||
|
||||
+12
-3
@@ -3,6 +3,7 @@ import { Injectable } from '@nestjs/common';
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { CommandMenuItemEntity } from 'src/engine/metadata-modules/command-menu-item/entities/command-menu-item.entity';
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { DeleteCommandMenuItemAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/command-menu-item/types/workspace-migration-command-menu-item-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
|
||||
@@ -18,15 +19,23 @@ export class DeleteCommandMenuItemActionHandlerService extends WorkspaceMigratio
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteCommandMenuItemAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatCommandMenuItem = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatCommandMenuItemMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const commandMenuItemRepository =
|
||||
queryRunner.manager.getRepository<CommandMenuItemEntity>(
|
||||
CommandMenuItemEntity,
|
||||
);
|
||||
|
||||
await commandMenuItemRepository.delete({ id: entityId, workspaceId });
|
||||
await commandMenuItemRepository.delete({
|
||||
id: flatCommandMenuItem.id,
|
||||
workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
async executeForWorkspaceSchema(
|
||||
|
||||
+9
-3
@@ -3,6 +3,7 @@ import { Injectable } from '@nestjs/common';
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { CronTriggerEntity } from 'src/engine/metadata-modules/cron-trigger/entities/cron-trigger.entity';
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { DeleteCronTriggerAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/cron-trigger/types/workspace-migration-cron-trigger-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
|
||||
@@ -18,14 +19,19 @@ export class DeleteCronTriggerActionHandlerService extends WorkspaceMigrationRun
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteCronTriggerAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatCronTrigger = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatCronTriggerMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const cronTriggerRepository =
|
||||
queryRunner.manager.getRepository<CronTriggerEntity>(CronTriggerEntity);
|
||||
|
||||
await cronTriggerRepository.delete({
|
||||
id: entityId,
|
||||
id: flatCronTrigger.id,
|
||||
workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
+11
-3
@@ -3,6 +3,7 @@ import { Injectable } from '@nestjs/common';
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { DatabaseEventTriggerEntity } from 'src/engine/metadata-modules/database-event-trigger/entities/database-event-trigger.entity';
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { DeleteDatabaseEventTriggerAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/database-event-trigger/types/workspace-migration-database-event-trigger-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
|
||||
@@ -18,8 +19,15 @@ export class DeleteDatabaseEventTriggerActionHandlerService extends WorkspaceMig
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteDatabaseEventTriggerAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatDatabaseEventTrigger = findFlatEntityByUniversalIdentifierOrThrow(
|
||||
{
|
||||
flatEntityMaps: allFlatEntityMaps.flatDatabaseEventTriggerMaps,
|
||||
universalIdentifier,
|
||||
},
|
||||
);
|
||||
|
||||
const databaseEventTriggerRepository =
|
||||
queryRunner.manager.getRepository<DatabaseEventTriggerEntity>(
|
||||
@@ -27,7 +35,7 @@ export class DeleteDatabaseEventTriggerActionHandlerService extends WorkspaceMig
|
||||
);
|
||||
|
||||
await databaseEventTriggerRepository.delete({
|
||||
id: entityId,
|
||||
id: flatDatabaseEventTrigger.id,
|
||||
workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
+14
-9
@@ -1,11 +1,10 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { In } from 'typeorm';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
||||
import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { WorkspaceSchemaManagerService } from 'src/engine/twenty-orm/workspace-schema-manager/workspace-schema-manager.service';
|
||||
import { type DeleteFieldAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/field/types/workspace-migration-field-action';
|
||||
import { type WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -31,16 +30,22 @@ export class DeleteFieldActionHandlerService extends WorkspaceMigrationRunnerAct
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteFieldAction>,
|
||||
) {
|
||||
const { action, queryRunner } = context;
|
||||
const { action, queryRunner, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatFieldMetadata = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatFieldMetadataMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const fieldMetadataRepository =
|
||||
queryRunner.manager.getRepository<FieldMetadataEntity>(
|
||||
FieldMetadataEntity,
|
||||
);
|
||||
|
||||
const { entityId } = action;
|
||||
|
||||
await fieldMetadataRepository.delete({
|
||||
id: In([entityId]),
|
||||
id: flatFieldMetadata.id,
|
||||
workspaceId: context.workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -53,16 +58,16 @@ export class DeleteFieldActionHandlerService extends WorkspaceMigrationRunnerAct
|
||||
allFlatEntityMaps: { flatObjectMetadataMaps, flatFieldMetadataMaps },
|
||||
workspaceId,
|
||||
} = context;
|
||||
const { objectMetadataId, entityId } = action;
|
||||
const { objectMetadataId, universalIdentifier } = action;
|
||||
|
||||
const flatObjectMetadata = findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
flatEntityMaps: flatObjectMetadataMaps,
|
||||
flatEntityId: objectMetadataId,
|
||||
});
|
||||
|
||||
const fieldMetadata = findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
const fieldMetadata = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: flatFieldMetadataMaps,
|
||||
flatEntityId: entityId,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const { schemaName, tableName } = getWorkspaceSchemaContextForMigration({
|
||||
|
||||
+12
-3
@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { FrontComponentEntity } from 'src/engine/metadata-modules/front-component/entities/front-component.entity';
|
||||
import { DeleteFrontComponentAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/front-component/types/workspace-migration-front-component-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -18,15 +19,23 @@ export class DeleteFrontComponentActionHandlerService extends WorkspaceMigration
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteFrontComponentAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatFrontComponent = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatFrontComponentMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const frontComponentRepository =
|
||||
queryRunner.manager.getRepository<FrontComponentEntity>(
|
||||
FrontComponentEntity,
|
||||
);
|
||||
|
||||
await frontComponentRepository.delete({ id: entityId, workspaceId });
|
||||
await frontComponentRepository.delete({
|
||||
id: flatFrontComponent.id,
|
||||
workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
async executeForWorkspaceSchema(
|
||||
|
||||
+15
-8
@@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { WorkspaceSchemaManagerService } from 'src/engine/twenty-orm/workspace-schema-manager/workspace-schema-manager.service';
|
||||
import { getWorkspaceSchemaName } from 'src/engine/workspace-datasource/utils/get-workspace-schema-name.util';
|
||||
import { type DeleteIndexAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/index/types/workspace-migration-index-action';
|
||||
@@ -26,11 +26,18 @@ export class DeleteIndexActionHandlerService extends WorkspaceMigrationRunnerAct
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteIndexAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner } = context;
|
||||
const { action, queryRunner, allFlatEntityMaps, workspaceId } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatIndex = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatIndexMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
await deleteIndexMetadata({
|
||||
entityId: action.entityId,
|
||||
entityId: flatIndex.id,
|
||||
queryRunner,
|
||||
workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -43,13 +50,13 @@ export class DeleteIndexActionHandlerService extends WorkspaceMigrationRunnerAct
|
||||
queryRunner,
|
||||
workspaceId,
|
||||
} = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatIndexMetadataToDelete = findFlatEntityByIdInFlatEntityMapsOrThrow(
|
||||
{
|
||||
flatEntityId: action.entityId,
|
||||
const flatIndexMetadataToDelete =
|
||||
findFlatEntityByUniversalIdentifierOrThrow({
|
||||
universalIdentifier,
|
||||
flatEntityMaps: flatIndexMaps,
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
const schemaName = getWorkspaceSchemaName(workspaceId);
|
||||
|
||||
|
||||
+2
-1
@@ -28,12 +28,13 @@ export class UpdateIndexActionHandlerService extends WorkspaceMigrationRunnerAct
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<UpdateIndexAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner } = context;
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
|
||||
// Delete old index metadata
|
||||
await deleteIndexMetadata({
|
||||
entityId: action.entityId,
|
||||
queryRunner,
|
||||
workspaceId,
|
||||
});
|
||||
|
||||
// Create new index metadata
|
||||
|
||||
+3
@@ -124,15 +124,18 @@ export const insertIndexMetadata = async ({
|
||||
export const deleteIndexMetadata = async ({
|
||||
entityId,
|
||||
queryRunner,
|
||||
workspaceId,
|
||||
}: {
|
||||
entityId: string;
|
||||
queryRunner: QueryRunner;
|
||||
workspaceId: string;
|
||||
}): Promise<void> => {
|
||||
const indexMetadataRepository =
|
||||
queryRunner.manager.getRepository<IndexMetadataEntity>(IndexMetadataEntity);
|
||||
|
||||
await indexMetadataRepository.delete({
|
||||
id: entityId,
|
||||
workspaceId,
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
+12
-7
@@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { findManyFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-many-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
|
||||
import { isCompositeFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-composite-flat-field-metadata.util';
|
||||
import { isEnumFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-enum-flat-field-metadata.util';
|
||||
@@ -31,15 +31,20 @@ export class DeleteObjectActionHandlerService extends WorkspaceMigrationRunnerAc
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteObjectAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatObjectMetadata = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatObjectMetadataMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const objectMetadataRepository =
|
||||
queryRunner.manager.getRepository<ObjectMetadataEntity>(
|
||||
ObjectMetadataEntity,
|
||||
);
|
||||
|
||||
await objectMetadataRepository.delete(entityId);
|
||||
await objectMetadataRepository.delete(flatObjectMetadata.id);
|
||||
}
|
||||
|
||||
async executeForWorkspaceSchema(
|
||||
@@ -51,11 +56,11 @@ export class DeleteObjectActionHandlerService extends WorkspaceMigrationRunnerAc
|
||||
allFlatEntityMaps: { flatObjectMetadataMaps, flatFieldMetadataMaps },
|
||||
workspaceId,
|
||||
} = context;
|
||||
const { entityId } = action;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatObjectMetadata = findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
const flatObjectMetadata = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: flatObjectMetadataMaps,
|
||||
flatEntityId: entityId,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const { schemaName, tableName } = getWorkspaceSchemaContextForMigration({
|
||||
|
||||
+12
-3
@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { PageLayoutTabEntity } from 'src/engine/metadata-modules/page-layout-tab/entities/page-layout-tab.entity';
|
||||
import { DeletePageLayoutTabAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/page-layout-tab/types/workspace-migration-page-layout-tab-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -18,15 +19,23 @@ export class DeletePageLayoutTabActionHandlerService extends WorkspaceMigrationR
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeletePageLayoutTabAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatPageLayoutTab = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatPageLayoutTabMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const pageLayoutTabRepository =
|
||||
queryRunner.manager.getRepository<PageLayoutTabEntity>(
|
||||
PageLayoutTabEntity,
|
||||
);
|
||||
|
||||
await pageLayoutTabRepository.delete({ id: entityId, workspaceId });
|
||||
await pageLayoutTabRepository.delete({
|
||||
id: flatPageLayoutTab.id,
|
||||
workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
async executeForWorkspaceSchema(
|
||||
|
||||
+9
-3
@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { PageLayoutWidgetEntity } from 'src/engine/metadata-modules/page-layout-widget/entities/page-layout-widget.entity';
|
||||
import { DeletePageLayoutWidgetAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/page-layout-widget/types/workspace-migration-page-layout-widget-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -18,15 +19,20 @@ export class DeletePageLayoutWidgetActionHandlerService extends WorkspaceMigrati
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeletePageLayoutWidgetAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatPageLayoutWidget = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatPageLayoutWidgetMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const pageLayoutWidgetRepository =
|
||||
queryRunner.manager.getRepository<PageLayoutWidgetEntity>(
|
||||
PageLayoutWidgetEntity,
|
||||
);
|
||||
|
||||
await pageLayoutWidgetRepository.delete({ id: entityId });
|
||||
await pageLayoutWidgetRepository.delete({ id: flatPageLayoutWidget.id });
|
||||
}
|
||||
|
||||
async executeForWorkspaceSchema(
|
||||
|
||||
+9
-3
@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { PageLayoutEntity } from 'src/engine/metadata-modules/page-layout/entities/page-layout.entity';
|
||||
import { DeletePageLayoutAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/page-layout/types/workspace-migration-page-layout-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -18,13 +19,18 @@ export class DeletePageLayoutActionHandlerService extends WorkspaceMigrationRunn
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeletePageLayoutAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatPageLayout = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatPageLayoutMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const pageLayoutRepository =
|
||||
queryRunner.manager.getRepository<PageLayoutEntity>(PageLayoutEntity);
|
||||
|
||||
await pageLayoutRepository.delete({ id: entityId, workspaceId });
|
||||
await pageLayoutRepository.delete({ id: flatPageLayout.id, workspaceId });
|
||||
}
|
||||
|
||||
async executeForWorkspaceSchema(
|
||||
|
||||
+9
-3
@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { RoleTargetEntity } from 'src/engine/metadata-modules/role-target/role-target.entity';
|
||||
import { DeleteRoleTargetAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/role-target/types/workspace-migration-role-target-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -18,14 +19,19 @@ export class DeleteRoleTargetActionHandlerService extends WorkspaceMigrationRunn
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteRoleTargetAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatRoleTarget = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatRoleTargetMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const roleTargetRepository =
|
||||
queryRunner.manager.getRepository<RoleTargetEntity>(RoleTargetEntity);
|
||||
|
||||
await roleTargetRepository.delete({
|
||||
id: entityId,
|
||||
id: flatRoleTarget.id,
|
||||
workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
+9
-3
@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { RoleEntity } from 'src/engine/metadata-modules/role/role.entity';
|
||||
import { DeleteRoleAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/role/types/workspace-migration-role-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -18,13 +19,18 @@ export class DeleteRoleActionHandlerService extends WorkspaceMigrationRunnerActi
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteRoleAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatRole = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatRoleMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const roleRepository =
|
||||
queryRunner.manager.getRepository<RoleEntity>(RoleEntity);
|
||||
|
||||
await roleRepository.delete({ id: entityId, workspaceId });
|
||||
await roleRepository.delete({ id: flatRole.id, workspaceId });
|
||||
}
|
||||
|
||||
async executeForWorkspaceSchema(
|
||||
|
||||
+9
-3
@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { RouteTriggerEntity } from 'src/engine/metadata-modules/route-trigger/route-trigger.entity';
|
||||
import { DeleteRouteTriggerAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/route-trigger/types/workspace-migration-route-trigger-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -18,14 +19,19 @@ export class DeleteRouteTriggerActionHandlerService extends WorkspaceMigrationRu
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteRouteTriggerAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatRouteTrigger = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatRouteTriggerMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const routeTriggerRepository =
|
||||
queryRunner.manager.getRepository<RouteTriggerEntity>(RouteTriggerEntity);
|
||||
|
||||
await routeTriggerRepository.delete({
|
||||
id: entityId,
|
||||
id: flatRouteTrigger.id,
|
||||
workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
+11
-3
@@ -4,6 +4,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { RowLevelPermissionPredicateGroupEntity } from 'src/engine/metadata-modules/row-level-permission-predicate/entities/row-level-permission-predicate-group.entity';
|
||||
import { DeleteRowLevelPermissionPredicateGroupAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/row-level-permission-predicate-group/types/workspace-migration-row-level-permission-predicate-group-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -16,8 +17,15 @@ export class DeleteRowLevelPermissionPredicateGroupActionHandlerService extends
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteRowLevelPermissionPredicateGroupAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatRowLevelPermissionPredicateGroup =
|
||||
findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps:
|
||||
allFlatEntityMaps.flatRowLevelPermissionPredicateGroupMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const repository =
|
||||
queryRunner.manager.getRepository<RowLevelPermissionPredicateGroupEntity>(
|
||||
@@ -25,7 +33,7 @@ export class DeleteRowLevelPermissionPredicateGroupActionHandlerService extends
|
||||
);
|
||||
|
||||
await repository.delete({
|
||||
id: entityId,
|
||||
id: flatRowLevelPermissionPredicateGroup.id,
|
||||
workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
+10
-3
@@ -4,6 +4,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { RowLevelPermissionPredicateEntity } from 'src/engine/metadata-modules/row-level-permission-predicate/entities/row-level-permission-predicate.entity';
|
||||
import { DeleteRowLevelPermissionPredicateAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/row-level-permission-predicate/types/workspace-migration-row-level-permission-predicate-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -16,8 +17,14 @@ export class DeleteRowLevelPermissionPredicateActionHandlerService extends Works
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteRowLevelPermissionPredicateAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatRowLevelPermissionPredicate =
|
||||
findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatRowLevelPermissionPredicateMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const repository =
|
||||
queryRunner.manager.getRepository<RowLevelPermissionPredicateEntity>(
|
||||
@@ -25,7 +32,7 @@ export class DeleteRowLevelPermissionPredicateActionHandlerService extends Works
|
||||
);
|
||||
|
||||
await repository.delete({
|
||||
id: entityId,
|
||||
id: flatRowLevelPermissionPredicate.id,
|
||||
workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
+19
-21
@@ -4,7 +4,7 @@ import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-mana
|
||||
|
||||
import { FileStorageService } from 'src/engine/core-modules/file-storage/file-storage.service';
|
||||
import { getServerlessFolderOrThrow } from 'src/engine/core-modules/serverless/utils/serverless-get-folder.utils';
|
||||
import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { ServerlessFunctionEntity } from 'src/engine/metadata-modules/serverless-function/serverless-function.entity';
|
||||
import { DeleteServerlessFunctionAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/serverless-function/types/workspace-migration-serverless-function-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -21,8 +21,13 @@ export class DeleteServerlessFunctionActionHandlerService extends WorkspaceMigra
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteServerlessFunctionAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatServerlessFunction = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatServerlessFunctionMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const serverlessFunctionRepository =
|
||||
queryRunner.manager.getRepository<ServerlessFunctionEntity>(
|
||||
@@ -30,26 +35,20 @@ export class DeleteServerlessFunctionActionHandlerService extends WorkspaceMigra
|
||||
);
|
||||
|
||||
await serverlessFunctionRepository.delete({
|
||||
id: entityId,
|
||||
id: flatServerlessFunction.id,
|
||||
workspaceId,
|
||||
});
|
||||
|
||||
const existingServerlessFunction =
|
||||
findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
flatEntityId: entityId,
|
||||
flatEntityMaps: context.allFlatEntityMaps.flatServerlessFunctionMaps,
|
||||
});
|
||||
|
||||
// TODO: Should implement a cron task or a job to delete the files after a certain period of time
|
||||
await this.fileStorageService.move({
|
||||
from: {
|
||||
folderPath: getServerlessFolderOrThrow({
|
||||
flatServerlessFunction: existingServerlessFunction,
|
||||
flatServerlessFunction,
|
||||
}),
|
||||
},
|
||||
to: {
|
||||
folderPath: getServerlessFolderOrThrow({
|
||||
flatServerlessFunction: existingServerlessFunction,
|
||||
flatServerlessFunction,
|
||||
toDelete: true,
|
||||
}),
|
||||
},
|
||||
@@ -59,25 +58,24 @@ export class DeleteServerlessFunctionActionHandlerService extends WorkspaceMigra
|
||||
async rollbackForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteServerlessFunctionAction>,
|
||||
): Promise<void> {
|
||||
const { action } = context;
|
||||
const { entityId } = action;
|
||||
const { action, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const existingServerlessFunction =
|
||||
findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
flatEntityId: entityId,
|
||||
flatEntityMaps: context.allFlatEntityMaps.flatServerlessFunctionMaps,
|
||||
});
|
||||
const flatServerlessFunction = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatServerlessFunctionMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
await this.fileStorageService.move({
|
||||
from: {
|
||||
folderPath: getServerlessFolderOrThrow({
|
||||
flatServerlessFunction: existingServerlessFunction,
|
||||
flatServerlessFunction,
|
||||
toDelete: true,
|
||||
}),
|
||||
},
|
||||
to: {
|
||||
folderPath: getServerlessFolderOrThrow({
|
||||
flatServerlessFunction: existingServerlessFunction,
|
||||
flatServerlessFunction,
|
||||
toDelete: false,
|
||||
}),
|
||||
},
|
||||
|
||||
+9
-3
@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { SkillEntity } from 'src/engine/metadata-modules/skill/entities/skill.entity';
|
||||
import { DeleteSkillAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/skill/types/workspace-migration-skill-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -18,13 +19,18 @@ export class DeleteSkillActionHandlerService extends WorkspaceMigrationRunnerAct
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteSkillAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatSkill = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatSkillMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const skillRepository =
|
||||
queryRunner.manager.getRepository<SkillEntity>(SkillEntity);
|
||||
|
||||
await skillRepository.delete({ id: entityId, workspaceId });
|
||||
await skillRepository.delete({ id: flatSkill.id, workspaceId });
|
||||
}
|
||||
|
||||
async executeForWorkspaceSchema(
|
||||
|
||||
+9
-3
@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { ViewFieldEntity } from 'src/engine/metadata-modules/view-field/entities/view-field.entity';
|
||||
import { DeleteViewFieldAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/view-field/types/workspace-migration-view-field-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -18,14 +19,19 @@ export class DeleteViewFieldActionHandlerService extends WorkspaceMigrationRunne
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteViewFieldAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatViewField = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatViewFieldMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const viewFieldRepository =
|
||||
queryRunner.manager.getRepository<ViewFieldEntity>(ViewFieldEntity);
|
||||
|
||||
await viewFieldRepository.delete({
|
||||
id: entityId,
|
||||
id: flatViewField.id,
|
||||
workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
+9
-3
@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { ViewFilterGroupEntity } from 'src/engine/metadata-modules/view-filter-group/entities/view-filter-group.entity';
|
||||
import { type DeleteViewFilterGroupAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/view-filter-group/types/workspace-migration-view-filter-group-action.type';
|
||||
import { type WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -18,8 +19,13 @@ export class DeleteViewFilterGroupActionHandlerService extends WorkspaceMigratio
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteViewFilterGroupAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatViewFilterGroup = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatViewFilterGroupMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const viewFilterGroupRepository =
|
||||
queryRunner.manager.getRepository<ViewFilterGroupEntity>(
|
||||
@@ -27,7 +33,7 @@ export class DeleteViewFilterGroupActionHandlerService extends WorkspaceMigratio
|
||||
);
|
||||
|
||||
await viewFilterGroupRepository.delete({
|
||||
id: entityId,
|
||||
id: flatViewFilterGroup.id,
|
||||
workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
+9
-3
@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { ViewFilterEntity } from 'src/engine/metadata-modules/view-filter/entities/view-filter.entity';
|
||||
import { DeleteViewFilterAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/view-filter/types/workspace-migration-view-filter-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -18,14 +19,19 @@ export class DeleteViewFilterActionHandlerService extends WorkspaceMigrationRunn
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteViewFilterAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatViewFilter = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatViewFilterMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const viewFilterRepository =
|
||||
queryRunner.manager.getRepository<ViewFilterEntity>(ViewFilterEntity);
|
||||
|
||||
await viewFilterRepository.delete({
|
||||
id: entityId,
|
||||
id: flatViewFilter.id,
|
||||
workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
+9
-3
@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { ViewGroupEntity } from 'src/engine/metadata-modules/view-group/entities/view-group.entity';
|
||||
import { DeleteViewGroupAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/view-group/types/workspace-migration-view-group-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -14,14 +15,19 @@ export class DeleteViewGroupActionHandlerService extends WorkspaceMigrationRunne
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteViewGroupAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatViewGroup = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatViewGroupMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const viewGroupRepository =
|
||||
queryRunner.manager.getRepository<ViewGroupEntity>(ViewGroupEntity);
|
||||
|
||||
await viewGroupRepository.delete({
|
||||
id: entityId,
|
||||
id: flatViewGroup.id,
|
||||
workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
+9
-3
@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceMigrationRunnerActionHandler } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/interfaces/workspace-migration-runner-action-handler-service.interface';
|
||||
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { ViewEntity } from 'src/engine/metadata-modules/view/entities/view.entity';
|
||||
import { DeleteViewAction } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-builder/builders/view/types/workspace-migration-view-action.type';
|
||||
import { WorkspaceMigrationActionRunnerArgs } from 'src/engine/workspace-manager/workspace-migration/workspace-migration-runner/types/workspace-migration-action-runner-args.type';
|
||||
@@ -18,14 +19,19 @@ export class DeleteViewActionHandlerService extends WorkspaceMigrationRunnerActi
|
||||
async executeForMetadata(
|
||||
context: WorkspaceMigrationActionRunnerArgs<DeleteViewAction>,
|
||||
): Promise<void> {
|
||||
const { action, queryRunner, workspaceId } = context;
|
||||
const { entityId } = action;
|
||||
const { action, queryRunner, workspaceId, allFlatEntityMaps } = context;
|
||||
const { universalIdentifier } = action;
|
||||
|
||||
const flatView = findFlatEntityByUniversalIdentifierOrThrow({
|
||||
flatEntityMaps: allFlatEntityMaps.flatViewMaps,
|
||||
universalIdentifier,
|
||||
});
|
||||
|
||||
const viewRepository =
|
||||
queryRunner.manager.getRepository<ViewEntity>(ViewEntity);
|
||||
|
||||
await viewRepository.delete({
|
||||
id: entityId,
|
||||
id: flatView.id,
|
||||
workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
+3
-3
@@ -5,7 +5,7 @@ import { type AllFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/
|
||||
import { type AllFlatEntityTypesByMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-flat-entity-types-by-metadata-name';
|
||||
import { type MetadataFlatEntity } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type';
|
||||
import { deleteFlatEntityFromFlatEntityAndRelatedEntityMapsThroughMutationOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/delete-flat-entity-from-flat-entity-and-related-entity-maps-through-mutation-or-throw.util';
|
||||
import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
|
||||
import { findFlatEntityByUniversalIdentifierOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-universal-identifier-or-throw.util';
|
||||
import { getMetadataFlatEntityMapsKey } from 'src/engine/metadata-modules/flat-entity/utils/get-metadata-flat-entity-maps-key.util';
|
||||
|
||||
type DeleteAction<TMetadataName extends AllMetadataName> =
|
||||
@@ -48,10 +48,10 @@ export const optimisticallyApplyDeleteActionOnAllFlatEntityMaps = <
|
||||
case 'pageLayoutTab':
|
||||
case 'commandMenuItem':
|
||||
case 'frontComponent': {
|
||||
const flatEntityToDelete = findFlatEntityByIdInFlatEntityMapsOrThrow<
|
||||
const flatEntityToDelete = findFlatEntityByUniversalIdentifierOrThrow<
|
||||
MetadataFlatEntity<typeof action.metadataName>
|
||||
>({
|
||||
flatEntityId: action.entityId,
|
||||
universalIdentifier: action.universalIdentifier,
|
||||
flatEntityMaps:
|
||||
allFlatEntityMaps[getMetadataFlatEntityMapsKey(action.metadataName)],
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user