Completed
Push — master ( 7c7ab7...45cb8f )
by Mathieu
19s queued 11s
created

server/src/Application/HumanResource/User/Query/GetUserByIdQueryHandler.ts   A

Complexity

Total Complexity 2
Complexity/F 2

Size

Lines of Code 31
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

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

1 Function

Rating   Name   Duplication   Size   Complexity  
A GetUserByIdQueryHandler.execute 0 14 2
1
import {QueryHandler} from '@nestjs/cqrs';
2
import {Inject} from '@nestjs/common';
3
import {UserView} from '../View/UserView';
4
import {IUserRepository} from 'src/Domain/HumanResource/User/Repository/IUserRepository';
5
import {GetUserByIdQuery} from './GetUserByIdQuery';
6
import {UserNotFoundException} from 'src/Domain/HumanResource/User/Exception/UserNotFoundException';
7
8
@QueryHandler(GetUserByIdQuery)
9
export class GetUserByIdQueryHandler {
10
  constructor(
11
    @Inject('IUserRepository')
12
    private readonly userRepository: IUserRepository
13
  ) {}
14
15
  public async execute(query: GetUserByIdQuery): Promise<UserView> {
16
    const user = await this.userRepository.findOneById(query.id);
17
    if (!user) {
18
      throw new UserNotFoundException();
19
    }
20
21
    return new UserView(
22
      user.getId(),
23
      user.getFirstName(),
24
      user.getLastName(),
25
      user.getEmail(),
26
      user.getRole(),
27
      user.getEntryDate()
28
    );
29
  }
30
}
31