26 lines
893 B
TypeScript
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,
|
|
});
|
|
}
|
|
}
|