Passed
Pull Request — master (#78)
by Mathieu
01:25
created

server/src/Infrastructure/Billing/Action/CreateDailyRateAction.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
wmc 2
eloc 35
mnd 1
bc 1
fnc 1
dl 0
loc 40
rs 10
bpm 1
cpm 2
noi 0
c 0
b 0
f 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A CreateDailyRateAction.index 0 13 2
1
import {
2
  Body,
3
  Post,
4
  Controller,
5
  Inject,
6
  BadRequestException,
7
  UseGuards
8
} from '@nestjs/common';
9
import {AuthGuard} from '@nestjs/passport';
10
import {ApiUseTags, ApiBearerAuth, ApiOperation} from '@nestjs/swagger';
11
import {ICommandBus} from 'src/Application/ICommandBus';
12
import {CreateDailyRateCommand} from 'src/Application/Billing/Command/DailyRate/CreateDailyRateCommand';
13
import {DailyRateDTO} from './DTO/DailyRateDTO';
14
15
@Controller('daily_rates')
16
@ApiUseTags('Billing')
17
@ApiBearerAuth()
18
@UseGuards(AuthGuard('bearer'))
19
export class CreateDailyRateAction {
20
  constructor(
21
    @Inject('ICommandBus')
22
    private readonly commandBus: ICommandBus
23
  ) {}
24
25
  @Post()
26
  @ApiOperation({title: 'Create new daily rate'})
27
  public async index(@Body() dto: DailyRateDTO) {
28
    try {
29
      const {userId, customerId, taskId, amount} = dto;
30
      const id = await this.commandBus.execute(
31
        new CreateDailyRateCommand(amount, userId, customerId, taskId)
32
      );
33
34
      return {id};
35
    } catch (e) {
36
      throw new BadRequestException(e.message);
37
    }
38
  }
39
}
40