Passed
Pull Request — master (#182)
by
unknown
01:52
created

server/src/Application/HumanResource/MealTicket/Command/CreateMealTicketRemovalCommandHandler.ts   A

Complexity

Total Complexity 2
Complexity/F 2

Size

Lines of Code 34
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 28
dl 0
loc 34
rs 10
c 0
b 0
f 0
wmc 2
mnd 1
bc 1
fnc 1
bpm 1
cpm 2
noi 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A CreateMealTicketRemovalCommandHandler.execute 0 16 2
1
import { CommandHandler } from '@nestjs/cqrs';
2
import { Inject } from '@nestjs/common';
3
import { IMealTicketRemovalRepository } from 'src/Domain/HumanResource/MealTicket/Repository/IMealTicketRemovalRepository';
4
import { MealTicketRemoval } from 'src/Domain/HumanResource/MealTicket/MealTicketRemoval.entity';
5
import { MealTicketRemovalAlreadyExistException } from 'src/Domain/HumanResource/MealTicket/Exception/MealTicketRemovalAlreadyExistException';
6
import { IsMealTicketRemovalAlreadyExist } from 'src/Domain/HumanResource/MealTicket/Specification/IsMealTicketRemovalAlreadyExist';
7
import { CreateMealTicketRemovalCommand } from './CreateMealTicketRemovalCommand';
8
9
@CommandHandler(CreateMealTicketRemovalCommand)
10
export class CreateMealTicketRemovalCommandHandler {
11
  constructor(
12
    @Inject('IMealTicketRemovalRepository')
13
    private readonly mealTicketRemovalRepository: IMealTicketRemovalRepository,
14
    private readonly isMealTicketRemovalAlreadyExist: IsMealTicketRemovalAlreadyExist,
15
  ) {}
16
17
  public async execute(command: CreateMealTicketRemovalCommand): Promise<string> {
18
    const { date, comment, user } = command;
19
20
    if (
21
      true ===
22
      (await this.isMealTicketRemovalAlreadyExist.isSatisfiedBy(user, new Date(date)))
23
    ) {
24
      throw new MealTicketRemovalAlreadyExistException();
25
    }
26
27
    const mealTicketRemoval = await this.mealTicketRemovalRepository.save(
28
      new MealTicketRemoval(date, comment, user)
29
    );
30
31
    return mealTicketRemoval.getId();
32
  }
33
}
34