import { CommandHandler, ICommandHandler } from '@nestjs/cqrs'; import { Issue } from '@task-stream/api/tracker/domain'; import { DeleteIssueCommand } from './delete-issue.command'; import { WriteAccess } from './write-access'; @CommandHandler(DeleteIssueCommand) export class DeleteIssueCommandHandler implements ICommandHandler { constructor(private readonly access: WriteAccess) {} async execute(command: DeleteIssueCommand): Promise { const issue = await this.access.live(command.issueId, Issue); if (!issue) return; issue.delete(command.actorId); await issue.commitAndWait(); } }