import { IQueryHandler, QueryHandler } from '@nestjs/cqrs'; import { EpicReadModel } from '@task-stream/api/tracker/domain'; import { FindIssuesRepository } from '../ports/find-issues.repository'; import { GetEpicsQuery } from './get-epics.query'; import { ReadAccess } from './read-access'; @QueryHandler(GetEpicsQuery) export class GetEpicsQueryHandler implements IQueryHandler { constructor( private readonly findIssues: FindIssuesRepository, private readonly access: ReadAccess, ) {} async execute(query: GetEpicsQuery): Promise { await this.access.assertSeesWholeProject(query.projectId, query.viewerId); return this.findIssues.epics(query.projectId); } }