Passed
Pull Request — master (#122)
by
unknown
01:40
created

server/src/Infrastructure/HumanResource/User/Action/GetUserAdministrativeAction.ts   A

Complexity

Total Complexity 2
Complexity/F 2

Size

Lines of Code 32
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

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

1 Function

Rating   Name   Duplication   Size   Complexity  
A GetUserAdministrativeAction.index 0 9 2
1
import {Controller, Get, Inject, Param, UseGuards, NotFoundException} from '@nestjs/common';
2
import {AuthGuard} from '@nestjs/passport';
3
import {ApiBearerAuth, ApiOperation, ApiTags} from '@nestjs/swagger';
4
import {Roles} from '../Decorator/Roles';
5
import {IQueryBus} from '@nestjs/cqrs';
6
import {UserAdministrativeView} from 'src/Application/HumanResource/User/View/UserAdministrativeView';
7
import {GetUserAdministrativeByIdQuery} from 'src/Application/HumanResource/User/Query/GetUserAdministrativeByIdQuery';
8
import {UserRole} from 'src/Domain/HumanResource/User/User.entity';
9
import {IdDTO} from 'src/Infrastructure/Common/DTO/IdDTO';
10
11
@Controller('users')
12
@ApiTags('Human Resource')
13
@ApiBearerAuth()
14
@UseGuards(AuthGuard('bearer'))
15
export class GetUserAdministrativeAction {
16
  constructor(
17
    @Inject('IQueryBus')
18
    private readonly queryBus: IQueryBus
19
  ) {}
20
21
  @Get(':id')
22
  @Roles(UserRole.COOPERATOR)
23
  @ApiOperation({summary: 'Get user'})
24
  public async index(@Param() dto: IdDTO): Promise<UserAdministrativeView> {
25
    try {
26
      return await this.queryBus.execute(new GetUserAdministrativeByIdQuery(dto.id));
27
    } catch (e) {
28
      throw new NotFoundException(e.message);
29
    }
30
  }
31
}
32