api/src/Application/User/Query/GetUserByIdQueryHandler.ts   A
last analyzed

Complexity

Total Complexity 2
Complexity/F 2

Size

Lines of Code 30
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

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

1 Function

Rating   Name   Duplication   Size   Complexity  
A GetUserByIdQueryHandler.execute 0 13 2
1
import { Inject } from '@nestjs/common';
2
import { QueryHandler } from '@nestjs/cqrs';
3
import { UserNotFoundException } from 'src/Domain/User/Exception/UserNotFoundException';
4
import { IUserRepository } from 'src/Domain/User/Repository/IUserRepository';
5
import { UserView } from '../View/UserView';
6
import { GetUserByIdQuery } from './GetUserByIdQuery';
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
    );
28
  }
29
}
30