Passed
Push — master ( 28db6b...fa5b81 )
by Mathieu
01:55
created

GetShippingCostAction   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 19
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 19
dl 0
loc 19
c 0
b 0
f 0
rs 10

1 Function

Rating   Name   Duplication   Size   Complexity  
A index 0 9 2
1
import {
2
  Controller,
3
  Inject,
4
  UseGuards,
5
  Param,
6
  Get,
7
  NotFoundException
8
} from '@nestjs/common';
9
import { AuthGuard } from '@nestjs/passport';
10
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
11
import { IQueryBus } from 'src/Application/IQueryBus';
12
import { GetShippingCostByIdQuery } from 'src/Application/Order/Query/ShippingCost/GetShippingCostByIdQuery';
13
import { ShippingCostView } from 'src/Application/Order/View/ShippingCostView';
14
import { UserRole } from 'src/Domain/User/User.entity';
15
import { IdDTO } from 'src/Infrastructure/Common/DTO/IdDTO';
16
import { Roles } from 'src/Infrastructure/User/Decorator/Roles';
17
import { RolesGuard } from 'src/Infrastructure/User/Security/RolesGuard';
18
19
@Controller('shipping-costs')
20
@ApiTags('Order')
21
@ApiBearerAuth()
22
@UseGuards(AuthGuard('bearer'), RolesGuard)
23
export class GetShippingCostAction {
24
  constructor(
25
    @Inject('IQueryBus')
26
    private readonly queryBus: IQueryBus
27
  ) {}
28
29
  @Get(':id')
30
  @Roles(UserRole.PHOTOGRAPHER)
31
  @ApiOperation({ summary: 'Get shipping cost' })
32
  public async index(@Param() { id }: IdDTO): Promise<ShippingCostView> {
33
    try {
34
      return await this.queryBus.execute(new GetShippingCostByIdQuery(id));
35
    } catch (e) {
36
      throw new NotFoundException(e.message);
37
    }
38
  }
39
}
40