All files / libs/tenants/teams/core/src/lib/events team-events-handler.ts

54.05% Statements 20/37
50% Branches 1/2
50% Functions 1/2
54.05% Lines 20/37

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 381x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x                                   1x  
import { Logger } from '@nestjs/common';
import { EventsHandler, type IEventHandler } from '@nestjs/cqrs';
 
import { type StatementDatasetCacheBurstEvent } from '@amalia/core/types';
import { MessageTasks, MessageType, QueueService } from '@amalia/kernel/queue/core';
 
import { TeamCreatedEvent } from './team-created-event';
import { TeamDeletedEvent } from './team-deleted-event';
import { TeamUpdatedEvent } from './team-updated-event';
 
export type TeamEvent = TeamCreatedEvent | TeamDeletedEvent | TeamUpdatedEvent;
 
@EventsHandler(TeamCreatedEvent, TeamUpdatedEvent, TeamDeletedEvent)
export class TeamEventsHandler implements IEventHandler<TeamEvent> {
  private readonly logger = new Logger(TeamEventsHandler.name);
 
  public constructor(private readonly queueService: QueueService) {}
 
  public async handle(event: TeamEvent): Promise<void> {
    const { auditObject } = event;

    const companyId = auditObject.authenticatedContext.user.company.id;

    this.logger.log({
      message: `Sent BURST_STATEMENT_DATASET_CACHE in context TeamEventsHandler for company ${companyId}`,
      companyId,
    });

    await this.queueService.sendToQueue(
      {
        type: MessageType.TASK,
        taskIdentifier: MessageTasks.BURST_STATEMENT_DATASET_CACHE,
      },
      { companyId } as StatementDatasetCacheBurstEvent,
    );
  }
}