-
Notifications
You must be signed in to change notification settings - Fork 0
/
resolvers.js
28 lines (27 loc) · 966 Bytes
/
resolvers.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import * as tagRepository from "./persistence/tag-repository";
import * as validator from "./validator";
import * as normaliser from "./normaliser";
import * as mapper from "./mapper";
import * as authorizer from "./authorizer";
export default {
Query: {
async tags(__, request) {
return { nodes: await tagRepository.getByTagType(request.tagType) };
}
},
Mutation: {
async createTag(__, request, context) {
authorizer.checkUserIsAuthorizedForMutation(context);
const tag = normaliser.normaliseCreateTagRequest(request.input);
validator.validateCreateTagRequest(tag);
const dbTag = mapper.mapCreateTagRequest(tag);
await tagRepository.createTag(dbTag);
return { node: dbTag };
},
async deleteTag(__, request, context) {
authorizer.checkUserIsAuthorizedForMutation(context);
await tagRepository.deleteTag(request.input.tagType, request.input.id);
return { ok: true };
}
}
};