import { CommandHandler, ICommandHandler } from '@nestjs/cqrs'; import { CommandResult, ack } from './command-result'; import { UnlinkIssuesCommand } from './unlink-issues.command'; import { WriteAccess } from './write-access'; @CommandHandler(UnlinkIssuesCommand) export class UnlinkIssuesCommandHandler implements ICommandHandler { constructor(private readonly access: WriteAccess) {} async execute(command: UnlinkIssuesCommand): Promise { const { issue } = await this.access.issueForContributor( command.issueId, command.actorId, ); issue.unlink(command.actorId, command.type, command.targetIssueId); await issue.commitAndWait(); return ack(issue); } }