Created
February 21, 2020 11:00
-
-
Save nikkaroraa/028d092e417f45cfac64881ef656a5bf to your computer and use it in GitHub Desktop.
create resolver (GraphQL HOC)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const createResolver = (resolver) => { | |
| const baseResolver = resolver; | |
| baseResolver.createResolver = (childResolver) => { | |
| const newResolver = async (parent, args, context, info) => { | |
| await resolver(parent, args, context, info); | |
| return childResolver(parent, args, context, info); | |
| }; | |
| return createResolver(newResolver); | |
| }; | |
| return baseResolver; | |
| }; | |
| export const requiresAuth = createResolver((parent, args, context) => { | |
| if (!context.user || !context.user.id) { | |
| throw new Error('Not authenticated'); | |
| } | |
| }); | |
| export const requiresAdmin = requiresAuth.createResolver((parent, args, context) => { | |
| if (!context.user.isAdmin) { | |
| throw new Error('Requires admin access'); | |
| } | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment