Skip to content

Commit 407c429

Browse files
committed
Add resolver
1 parent 1a5a27e commit 407c429

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { QueryResolvers } from 'schema';
2+
import {
3+
DeadlineNearingTodosInteractor,
4+
allowOnlyWhenActorHasMemberRole,
5+
denyIfNotSet,
6+
} from 'domain-model';
7+
8+
import { ApolloServerContext } from '../../../types';
9+
import { GqlDeadlineNearingTodosPresenter } from '../../../../../presenter/todo/DeadlineNearingTodos';
10+
import { GqlTodoQueryService } from '../../../../../repository/typeorm/todo/queryService/Todo';
11+
12+
export const allDeadlineNearingTodos: QueryResolvers<ApolloServerContext> = {
13+
allDeadlineNearingTodos: async (_parent, args, { dbConnection, actor }) => {
14+
denyIfNotSet(args?.query, ['dueDate']);
15+
denyIfNotSet(actor, ['id']);
16+
allowOnlyWhenActorHasMemberRole(actor);
17+
18+
const queryService = new GqlTodoQueryService(dbConnection);
19+
const presenter = new GqlDeadlineNearingTodosPresenter();
20+
const usecase = new DeadlineNearingTodosInteractor(queryService, presenter);
21+
22+
await usecase.handle(args.query!, actor!);
23+
24+
return presenter.getResponse();
25+
},
26+
};

src/backend/src/infrastructure/apollo-server/resolvers/query/Todo/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ import { QueryResolvers } from 'schema';
22

33
import { ApolloServerContext } from '../../../types';
44
import { todo } from './todo';
5+
import { allDeadlineNearingTodos } from './allDeadlineNearingTodos';
56

67
export const Todo: QueryResolvers<ApolloServerContext> = {
78
...todo,
9+
...allDeadlineNearingTodos,
810
};

0 commit comments

Comments
 (0)