Passed
Pull Request — master (#104)
by Mathieu
01:35
created

server/src/Application/HumanResource/PaySlip/Query/GetPaySlipsQueryHandler.ts   A

Complexity

Total Complexity 2
Complexity/F 2

Size

Lines of Code 41
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

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

1 Function

Rating   Name   Duplication   Size   Complexity  
A GetPaySlipsQueryHandler.execute 0 24 2
1
import {Inject} from '@nestjs/common';
2
import {QueryHandler} from '@nestjs/cqrs';
3
import {GetPaySlipsQuery} from './GetPaySlipsQuery';
4
import {IPaySlipRepository} from 'src/Domain/HumanResource/PaySlip/Repository/IPaySlipRepository';
5
import {PaySlipView} from '../View/PaySlipView';
6
import {UserSummaryView} from '../../User/View/UserSummaryView';
7
import {FileView} from 'src/Application/File/View/FileView';
8
9
@QueryHandler(GetPaySlipsQuery)
10
export class GetPaySlipsQueryHandler {
11
  constructor(
12
    @Inject('IPaySlipRepository')
13
    private readonly paySlipRepository: IPaySlipRepository
14
  ) {}
15
16
  public async execute(query: GetPaySlipsQuery): Promise<PaySlipView[]> {
17
    const paySlips = await this.paySlipRepository.findAll();
18
    const paySlipViews: PaySlipView[] = [];
19
20
    for (const paySlip of paySlips) {
21
      const user = paySlip.getUser();
22
      const file = paySlip.getFile();
23
24
      paySlipViews.push(
25
        new PaySlipView(
26
          paySlip.getId(),
27
          paySlip.getDate(),
28
          new UserSummaryView(
29
            user.getId(),
30
            user.getFirstName(),
31
            user.getLastName()
32
          ),
33
          new FileView(file.getId(), file.getOriginalName(), file.getSize())
34
        )
35
      );
36
    }
37
38
    return paySlipViews;
39
  }
40
}
41