Passed
Pull Request — master (#159)
by Mathieu
01:30
created

server/src/Domain/FairCalendar/Specification/DoesEventsOrLeaveExistForPeriod.ts   A

Complexity

Total Complexity 1
Complexity/F 1

Size

Lines of Code 27
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

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

1 Function

Rating   Name   Duplication   Size   Complexity  
A DoesEventsOrLeaveExistForPeriod.isSatisfiedBy 0 12 1
1
import { Inject } from '@nestjs/common';
2
import { IEventRepository } from '../Repository/IEventRepository';
3
import { User } from 'src/Domain/HumanResource/User/User.entity';
4
import { ILeaveRepository } from 'src/Domain/HumanResource/Leave/Repository/ILeaveRepository';
5
6
export class DoesEventsOrLeaveExistForPeriod {
7
  constructor(
8
    @Inject('IEventRepository')
9
    private readonly eventRepository: IEventRepository,
10
    @Inject('ILeaveRepository')
11
    private readonly leaveRepository: ILeaveRepository
12
  ) {}
13
14
  public async isSatisfiedBy(
15
    user: User,
16
    startDate: string,
17
    endDate: string
18
  ): Promise<boolean> {
19
    const [ events, leaves ] = await Promise.all([
20
      this.eventRepository.countEventsByUserAndPeriod(user, startDate, endDate),
21
      this.leaveRepository.countLeavesByUserAndPeriod(user, startDate, endDate)
22
    ]);
23
24
    return events + leaves > 0;
25
  }
26
}
27