Files
twenty/packages/twenty-server/src/modules/messaging/services/thread-cleaner/thread-cleaner.service.ts
T
Weiko 8fb1ab8933 [backend] rename repository services and replace repository modules by dynamicModule (#4536)
* rename database services to repository

* refactor more repositories

* more refactoring

* followup

* remove unused imports

* fix

* fix

* Fix calendar listener being called when flag is off

* remove folders
2024-03-18 16:26:23 +01:00

41 lines
1.6 KiB
TypeScript

import { Injectable } from '@nestjs/common';
import { InjectObjectMetadataRepository } from 'src/engine/object-metadata-repository/object-metadata-repository.decorator';
import { MessageThreadRepository } from 'src/modules/messaging/repositories/message-thread.repository';
import { MessageRepository } from 'src/modules/messaging/repositories/message.repository';
import { deleteUsingPagination } from 'src/modules/messaging/services/thread-cleaner/utils/delete-using-pagination.util';
import { MessageThreadObjectMetadata } from 'src/modules/messaging/standard-objects/message-thread.object-metadata';
import { MessageObjectMetadata } from 'src/modules/messaging/standard-objects/message.object-metadata';
@Injectable()
export class ThreadCleanerService {
constructor(
@InjectObjectMetadataRepository(MessageObjectMetadata)
private readonly messageRepository: MessageRepository,
@InjectObjectMetadataRepository(MessageThreadObjectMetadata)
private readonly messageThreadRepository: MessageThreadRepository,
) {}
public async cleanWorkspaceThreads(workspaceId: string) {
await deleteUsingPagination(
workspaceId,
500,
this.messageRepository.getNonAssociatedMessageIdsPaginated.bind(
this.messageRepository,
),
this.messageRepository.deleteByIds.bind(this.messageRepository),
);
await deleteUsingPagination(
workspaceId,
500,
this.messageThreadRepository.getOrphanThreadIdsPaginated.bind(
this.messageThreadRepository,
),
this.messageThreadRepository.deleteByIds.bind(
this.messageThreadRepository,
),
);
}
}