TODO: - remove WorkspaceIsNotAuditLogged decorators on activity/activityTarget to log task/note creations - handle attachments - fix css and remove unnecessary styled components or duplicates
44 lines
1.9 KiB
TypeScript
44 lines
1.9 KiB
TypeScript
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
import { Injectable, NotFoundException } from '@nestjs/common';
|
|
|
|
import { WorkspacePreQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-pre-query-hook/interfaces/workspace-pre-query-hook.interface';
|
|
import { FindOneResolverArgs } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
|
|
|
|
import { InjectObjectMetadataRepository } from 'src/engine/object-metadata-repository/object-metadata-repository.decorator';
|
|
import { CanAccessMessageThreadService } from 'src/modules/messaging/common/query-hooks/message/can-access-message-thread.service';
|
|
import { MessageChannelMessageAssociationRepository } from 'src/modules/messaging/common/repositories/message-channel-message-association.repository';
|
|
import { MessageChannelMessageAssociationWorkspaceEntity } from 'src/modules/messaging/common/standard-objects/message-channel-message-association.workspace-entity';
|
|
|
|
@Injectable()
|
|
export class MessageFindOnePreQueryHook implements WorkspacePreQueryHook {
|
|
constructor(
|
|
@InjectObjectMetadataRepository(
|
|
MessageChannelMessageAssociationWorkspaceEntity,
|
|
)
|
|
private readonly messageChannelMessageAssociationService: MessageChannelMessageAssociationRepository,
|
|
private readonly canAccessMessageThreadService: CanAccessMessageThreadService,
|
|
) {}
|
|
|
|
async execute(
|
|
userId: string,
|
|
workspaceId: string,
|
|
payload: FindOneResolverArgs,
|
|
): Promise<void> {
|
|
const messageChannelMessageAssociations =
|
|
await this.messageChannelMessageAssociationService.getByMessageIds(
|
|
[payload?.filter?.id?.eq],
|
|
workspaceId,
|
|
);
|
|
|
|
if (messageChannelMessageAssociations.length === 0) {
|
|
throw new NotFoundException();
|
|
}
|
|
|
|
await this.canAccessMessageThreadService.canAccessMessageThread(
|
|
userId,
|
|
workspaceId,
|
|
messageChannelMessageAssociations,
|
|
);
|
|
}
|
|
}
|