Completed
Push — master ( e65836...fa4d5c )
by Mathieu
12s queued 10s
created

server/src/Infrastructure/HumanResource/Leave/Action/DeleteLeaveRequestAction.ts   A

Complexity

Total Complexity 2
Complexity/F 2

Size

Lines of Code 40
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

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

1 Function

Rating   Name   Duplication   Size   Complexity  
A DeleteLeaveRequestAction.index 0 9 2
1
import {
2
  Controller,
3
  Inject,
4
  BadRequestException,
5
  UseGuards,
6
  Param,
7
  Delete
8
} from '@nestjs/common';
9
import { AuthGuard } from '@nestjs/passport';
10
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
11
import { IdDTO } from 'src/Infrastructure/Common/DTO/IdDTO';
12
import { Roles } from 'src/Infrastructure/HumanResource/User/Decorator/Roles';
13
import { UserRole, User } from 'src/Domain/HumanResource/User/User.entity';
14
import { RolesGuard } from 'src/Infrastructure/HumanResource/User/Security/RolesGuard';
15
import { LoggedUser } from '../../User/Decorator/LoggedUser';
16
import { ICommandBus } from 'src/Application/ICommandBus';
17
import { DeleteLeaveRequestCommand } from 'src/Application/HumanResource/Leave/Command/DeleteLeaveRequestCommand';
18
19
@Controller('leave-requests')
20
@ApiTags('Human Resource')
21
@ApiBearerAuth()
22
@UseGuards(AuthGuard('bearer'), RolesGuard)
23
export class DeleteLeaveRequestAction {
24
  constructor(
25
    @Inject('ICommandBus')
26
    private readonly commandBus: ICommandBus
27
  ) {}
28
29
  @Delete(':id')
30
  @Roles(UserRole.COOPERATOR)
31
  @ApiOperation({summary: 'Delete leave request'})
32
  public async index(@Param() { id }: IdDTO, @LoggedUser() user: User) {
33
    try {
34
      await this.commandBus.execute(new DeleteLeaveRequestCommand(id, user));
35
    } catch (e) {
36
      throw new BadRequestException(e.message);
37
    }
38
  }
39
}
40