All files / libs/payout-definition/designer/core/src/lib/cqrs GetCustomObjectDefinitionUsage.handler.ts

56.75% Statements 21/37
25% Branches 1/4
50% Functions 1/2
56.75% Lines 21/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 10x 10x 10x 10x 1x 1x                                 1x  
import { CommandHandler, type ICommandHandler } from '@nestjs/cqrs';
 
import {
  GetCustomObjectDefinitionUsageCommand,
  type GetCustomObjectDefinitionUsageCommandReturnType,
} from '@amalia/core/models';
 
import { FiltersService } from '../filters/filters.service';
import { RelationshipsService } from '../relationships/relationships.service';
import { VariablesService } from '../variables/variables.service';
 
@CommandHandler(GetCustomObjectDefinitionUsageCommand)
export class GetCustomObjectDefinitionUsageHandler implements ICommandHandler<GetCustomObjectDefinitionUsageCommand> {
  public constructor(
    private readonly filtersService: FiltersService,
    private readonly variablesService: VariablesService,
    private readonly relationshipsService: RelationshipsService,
  ) {}
 
  public async execute(
    command: GetCustomObjectDefinitionUsageCommand,
  ): Promise<GetCustomObjectDefinitionUsageCommandReturnType> {
    const { company, customObjectDefinition } = command;

    const [filters, variables, relationships] = await Promise.all([
      this.filtersService.findByObjectDefinition(company, customObjectDefinition),
      this.variablesService.findByDefinition(company, customObjectDefinition.id),
      this.relationshipsService.findByDefinition(company, customObjectDefinition.machineName),
    ]);

    return {
      filters,
      variables,
      relationships,
    };
  }
}