| Total Complexity | 2 | 
| Complexity/F | 2 | 
| Lines of Code | 33 | 
| Function Count | 1 | 
| Duplicated Lines | 0 | 
| Ratio | 0 % | 
| Changes | 0 | ||
| 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.getUnitPrice() / 100; | ||
| 21 | |||
| 22 | await this.commandBus.execute( | ||
| 23 | new CreateSchoolProductCommand( | ||
| 24 | price, | ||
| 25 | price, | ||
| 26 | schoolId, | ||
| 27 | product.getId() | ||
| 28 | ) | ||
| 29 | ); | ||
| 30 | } | ||
| 31 | } | ||
| 32 | } | ||
| 33 |