Files
task-stream/libs/api/tracker/application/src/lib/queries/get-activity.query-handler.ts
2026-10-03 13:40:26 +02:00

26 lines
893 B
TypeScript

import { IQueryHandler, QueryHandler } from '@nestjs/cqrs';
import { ActivityReadModel } from '@task-stream/api/tracker/domain';
import { FindActivityRepository } from '../ports/find-activity.repository';
import { ReadAccess } from './read-access';
import { GetActivityQuery } from './get-activity.query';
@QueryHandler(GetActivityQuery)
export class GetActivityQueryHandler
implements IQueryHandler<GetActivityQuery, ActivityReadModel[]>
{
constructor(
private readonly findActivity: FindActivityRepository,
private readonly access: ReadAccess,
) {}
async execute(query: GetActivityQuery): Promise<ActivityReadModel[]> {
await this.access.assertCanView(query.projectId, query.viewerId);
return this.findActivity.find({
projectId: query.projectId,
issueId: query.issueId,
limit: Math.min(query.limit, 200),
before: query.before,
});
}
}