| Total Complexity | 1 |
| Complexity/F | 1 |
| Lines of Code | 27 |
| Function Count | 1 |
| Duplicated Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
| 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 |