Passed
Pull Request — master (#112)
by Mathieu
01:50
created

server/src/Domain/FairCalendar/Converter/HolidayToEventsConverter.ts   A

Complexity

Total Complexity 3
Complexity/F 3

Size

Lines of Code 38
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

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

1 Function

Rating   Name   Duplication   Size   Complexity  
A HolidayToEventsConverter.convert 0 17 3
1
import {Inject} from '@nestjs/common';
2
import {
3
  Holiday,
4
  HolidayLeaveType
5
} from '../../HumanResource/Holiday/Holiday.entity';
6
import {Event, EventType} from 'src/Domain/FairCalendar/Event.entity';
7
import {IEventRepository} from '../Repository/IEventRepository';
8
import {IDateUtils} from 'src/Application/IDateUtils';
9
10
export class HolidayToEventsConverter {
11
  constructor(
12
    @Inject('IEventRepository')
13
    private readonly eventRepository: IEventRepository,
14
    @Inject('IDateUtils')
15
    private readonly dateUtils: IDateUtils
16
  ) {}
17
18
  public async convert(holiday: Holiday): Promise<void> {
19
    const type =
20
      holiday.getLeaveType() === HolidayLeaveType.MEDICAL
21
        ? EventType.MEDICAL_LEAVE
22
        : EventType.HOLIDAY;
23
24
    const dates = this.dateUtils.getWorkedDaysDuringAPeriod(
25
      new Date(holiday.getStartDate()),
26
      new Date(holiday.getEndDate())
27
    );
28
29
    for (const date of dates) {
30
      //if ()
31
32
      this.eventRepository.save(
33
        new Event(type, holiday.getUser(), 100, date.toISOString())
34
      );
35
    }
36
  }
37
}
38