Spaces:
Build error
Build error
File size: 2,247 Bytes
d9494a5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | import { Injectable } from '@nestjs/common';
import { assertIsDefinedOrThrow } from 'twenty-shared/utils';
import { In } from 'typeorm';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import { WorkspaceNotFoundDefaultError } from 'src/engine/core-modules/workspace/workspace.exception';
import { GlobalWorkspaceOrmManager } from 'src/engine/twenty-orm/global-workspace-datasource/global-workspace-orm.manager';
import { TaskTargetWorkspaceEntity } from 'src/modules/task/standard-objects/task-target.workspace-entity';
import { TaskWorkspaceEntity } from 'src/modules/task/standard-objects/task.workspace-entity';
@Injectable()
export class TaskPostQueryHookService {
constructor(
private readonly globalWorkspaceOrmManager: GlobalWorkspaceOrmManager,
) {}
async handleTaskTargetsDelete(
authContext: WorkspaceAuthContext,
payload: TaskWorkspaceEntity[],
): Promise<void> {
if (!payload || payload?.length === 0) {
return;
}
const workspace = authContext.workspace;
assertIsDefinedOrThrow(workspace, WorkspaceNotFoundDefaultError);
await this.globalWorkspaceOrmManager.executeInWorkspaceContext(async () => {
const taskTargetRepository =
await this.globalWorkspaceOrmManager.getRepository<TaskTargetWorkspaceEntity>(
workspace.id,
'taskTarget',
);
await taskTargetRepository.softDelete({
taskId: In(payload.map((task) => task.id)),
});
}, authContext);
}
async handleTaskTargetsRestore(
authContext: WorkspaceAuthContext,
payload: TaskWorkspaceEntity[],
): Promise<void> {
if (!payload || payload?.length === 0) {
return;
}
const workspace = authContext.workspace;
assertIsDefinedOrThrow(workspace, WorkspaceNotFoundDefaultError);
await this.globalWorkspaceOrmManager.executeInWorkspaceContext(async () => {
const taskTargetRepository =
await this.globalWorkspaceOrmManager.getRepository<TaskTargetWorkspaceEntity>(
workspace.id,
'taskTarget',
);
await taskTargetRepository.restore({
taskId: In(payload.map((task) => task.id)),
});
}, authContext);
}
}
|