Slide 40
Slide 40 text
# Backend: resolver
const resolvers = {
Query: {
users: async (_, { q }) => {
const result = await BasicService.query(User, q)
return result
},
posts: async (_, { q }) => {
const result = await BasicService.query(Post, q)
return result
},
},
User: {
user_data(user, _, { loaders: { user_datas } }) {
return user_datas.load({ key: 'user_id', value: user.id })
},
posts(user, _, { loaders: { posts } }) {
return posts.load({ key: 'user_id', value: user.id, many: true })
},
groups(user, _, { loaders: { user_groups, groups } }) {
let temp = await user_groups.load({ key: 'user_id', value: user.id, many:
true })
return temp.map(x => groups.load({ key: 'id', value: x.group_id }))
}
},
Post: {
user(post, _, { loaders: { users } }) {
return users.load({ key: 'id', value: post.user_id })
}
}
}