Passed
Push — master ( 9141d4...2cdb9e )
by Mathieu
02:07
created

SchoolCreatedEventListener   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Importance

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

1 Function

Rating   Name   Duplication   Size   Complexity  
A handle 0 13 2
1
import { Inject } from '@nestjs/common';
2
import { EventsHandler, ICommandBus } from '@nestjs/cqrs';
3
import { IProductRepository } from 'src/Domain/Product/Repository/IProductRepository';
4
import { CreateSchoolProductCommand } from '../Command/Product/CreateSchoolProductCommand';
5
import { SchoolCreatedEvent } from '../Event/SchoolCreatedEvent';
6
7
@EventsHandler(SchoolCreatedEvent)
8
export class SchoolCreatedEventListener {
9
  constructor(
10
    @Inject('ICommandBus')
11
    private readonly commandBus: ICommandBus,
12
    @Inject('IProductRepository')
13
    private readonly productRepository: IProductRepository
14
  ) {}
15
16
  public async handle({ schoolId }: SchoolCreatedEvent): Promise<void> {
17
    const products = await this.productRepository.findProductsToImport();
18
19
    for (const product of products) {
20
      const price = product.getPriceFromCents();
21
22
      await this.commandBus.execute(
23
        new CreateSchoolProductCommand(
24
          price,
25
          price,
26
          schoolId,
27
          product.getId()
28
        )
29
      );
30
    }
31
  }
32
}
33