Compare commits

...

2 Commits

Author SHA1 Message Date
Fanch 35734f0900 Merge branch 'pause-ad' into 'next-release'
Draft: add pause in ad service

See merge request mobicoop/v3/service/ad!47
2024-05-21 14:19:34 +00:00
Fanch eeddd54139 feat(pause ad): emit update event after pause ad 2024-05-21 08:33:55 +00:00
1 changed files with 12 additions and 1 deletions

View File

@ -1,19 +1,30 @@
import { AD_REPOSITORY } from '@modules/ad/ad.di-tokens';
import { Inject } from '@nestjs/common';
import { CommandHandler, ICommandHandler } from '@nestjs/cqrs';
import { EventEmitter2 } from '@nestjs/event-emitter';
import { AdRepositoryPort } from '../../ports/ad.repository.port';
import { PauseAdCommand } from './pause-ad.command';
import { AdUpdatedDomainEvent } from '@modules/ad/core/domain/events/ad.domain-event';
@CommandHandler(PauseAdCommand)
export class PauseAdService implements ICommandHandler {
constructor(
@Inject(AD_REPOSITORY)
private readonly adRepository: AdRepositoryPort,
private readonly eventEmitter: EventEmitter2,
) {}
async execute(command: PauseAdCommand): Promise<void> {
const ad = await this.adRepository.findOneById(command.id);
const ad = await this.adRepository.findOneById(command.id, {
// TODO: waypoints and schedule needed for event, should be optional if no modif on them ...
waypoints: true,
schedule: true,
});
ad.pause();
await this.adRepository.update(ad.id, ad);
this.eventEmitter.emitAsync(
AdUpdatedDomainEvent.name,
new AdUpdatedDomainEvent(ad),
);
}
}