Fix destroy many resolver broken on custom objects (#13858)
Fixes https://github.com/twentyhq/twenty/issues/13804
This commit is contained in:
+15
@@ -7,6 +7,7 @@ import {
|
||||
type ObjectLiteral,
|
||||
} from 'typeorm';
|
||||
import { type QueryDeepPartialEntity } from 'typeorm/query-builder/QueryPartialEntity';
|
||||
import { type WhereClause } from 'typeorm/query-builder/WhereClause';
|
||||
|
||||
import { type FeatureFlagMap } from 'src/engine/core-modules/feature-flag/interfaces/feature-flag-map.interface';
|
||||
import { type WorkspaceInternalContext } from 'src/engine/twenty-orm/interfaces/workspace-internal-context.interface';
|
||||
@@ -23,8 +24,10 @@ import { validateQueryIsPermittedOrThrow } from 'src/engine/twenty-orm/repositor
|
||||
import { WorkspaceSelectQueryBuilder } from 'src/engine/twenty-orm/repository/workspace-select-query-builder';
|
||||
import { type WorkspaceSoftDeleteQueryBuilder } from 'src/engine/twenty-orm/repository/workspace-soft-delete-query-builder';
|
||||
import { type WorkspaceUpdateQueryBuilder } from 'src/engine/twenty-orm/repository/workspace-update-query-builder';
|
||||
import { applyTableAliasOnWhereCondition } from 'src/engine/twenty-orm/utils/apply-table-alias-on-where-condition';
|
||||
import { formatResult } from 'src/engine/twenty-orm/utils/format-result.util';
|
||||
import { getObjectMetadataFromEntityTarget } from 'src/engine/twenty-orm/utils/get-object-metadata-from-entity-target.util';
|
||||
import { computeTableName } from 'src/engine/utils/compute-table-name.util';
|
||||
|
||||
export class WorkspaceDeleteQueryBuilder<
|
||||
T extends ObjectLiteral,
|
||||
@@ -89,13 +92,25 @@ export class WorkspaceDeleteQueryBuilder<
|
||||
this.featureFlagMap,
|
||||
);
|
||||
|
||||
const tableName = computeTableName(
|
||||
objectMetadata.nameSingular,
|
||||
objectMetadata.isCustom,
|
||||
);
|
||||
|
||||
eventSelectQueryBuilder.expressionMap.wheres = this.expressionMap.wheres;
|
||||
|
||||
eventSelectQueryBuilder.expressionMap.aliases =
|
||||
this.expressionMap.aliases;
|
||||
eventSelectQueryBuilder.setParameters(this.getParameters());
|
||||
|
||||
const before = await eventSelectQueryBuilder.getOne();
|
||||
|
||||
this.expressionMap.wheres = applyTableAliasOnWhereCondition({
|
||||
condition: this.expressionMap.wheres,
|
||||
tableName,
|
||||
aliasName: objectMetadata.nameSingular,
|
||||
}) as WhereClause[];
|
||||
|
||||
const result = await super.execute();
|
||||
|
||||
const formattedResult = formatResult<T[]>(
|
||||
|
||||
Reference in New Issue
Block a user