first commit
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import { IQueryHandler, QueryHandler } from '@nestjs/cqrs';
|
||||
import { IssueReadModel } from '@task-stream/api/tracker/domain';
|
||||
import { FindIssuesRepository, Page } from '../ports/find-issues.repository';
|
||||
import { ReadAccess } from './read-access';
|
||||
import { SearchIssuesQuery } from './search-issues.query';
|
||||
|
||||
@QueryHandler(SearchIssuesQuery)
|
||||
export class SearchIssuesQueryHandler
|
||||
implements IQueryHandler<SearchIssuesQuery, Page<IssueReadModel>>
|
||||
{
|
||||
constructor(
|
||||
private readonly findIssues: FindIssuesRepository,
|
||||
private readonly access: ReadAccess,
|
||||
) {}
|
||||
|
||||
async execute(query: SearchIssuesQuery): Promise<Page<IssueReadModel>> {
|
||||
await this.access.assertCanView(query.filter.projectId, query.viewerId);
|
||||
return this.findIssues.search({
|
||||
...query.filter,
|
||||
limit: Math.min(query.filter.limit, 200),
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user