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

api/src/Application/Order/Query/ShippingCost/GetShippingCostByIdQueryHandler.ts   A

Complexity

Total Complexity 2
Complexity/F 2

Size

Lines of Code 29
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

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

1 Function

Rating   Name   Duplication   Size   Complexity  
A GetShippingCostByIdQueryHandler.execute 0 12 2
1
import { QueryHandler } from '@nestjs/cqrs';
2
import { Inject } from '@nestjs/common';
3
import { IShippingCostRepository } from 'src/Domain/Order/Repository/IShippingCostRepository';
4
import { ShippingCostView } from '../../View/ShippingCostView';
5
import { ShippingCostNotFoundException } from 'src/Domain/Order/Exception/ShippingCostNotFoundException';
6
import { GetShippingCostByIdQuery } from './GetShippingCostByIdQuery';
7
8
@QueryHandler(GetShippingCostByIdQuery)
9
export class GetShippingCostByIdQueryHandler {
10
  constructor(
11
    @Inject('IShippingCostRepository')
12
    private readonly shippingcostRepository: IShippingCostRepository
13
  ) {}
14
15
  public async execute(query: GetShippingCostByIdQuery): Promise<ShippingCostView> {
16
    const shippingCost = await this.shippingcostRepository.findOneById(query.id);
17
18
    if (!shippingCost) {
19
      throw new ShippingCostNotFoundException();
20
    }
21
22
    return new ShippingCostView(
23
      shippingCost.getId(),
24
      shippingCost.getGrams(),
25
      shippingCost.getPriceFromCents(),
26
    );
27
  }
28
}
29