import { CommandHandler, ICommandHandler } from '@nestjs/cqrs'; import { CommandResult, ack } from './command-result'; import { UpdateProjectCommand } from './update-project.command'; import { WriteAccess } from './write-access'; @CommandHandler(UpdateProjectCommand) export class UpdateProjectCommandHandler implements ICommandHandler { constructor(private readonly access: WriteAccess) {} async execute(command: UpdateProjectCommand): Promise { const project = await this.access.project(command.projectId); project.updateDetails(command.actorId, command.changes); await project.commitAndWait(); return ack(project); } }