import { GraphQLError } from 'graphql' export const E_FORBIDDEN = 'E_FORBIDDEN' export const E_UNAUTHENTICATED = 'E_UNAUTHENTICATED' export const E_BAD_INPUT = 'E_BAD_INPUT' export const E_VAULT_KEY_EXISTS = 'E_VAULT_KEY_EXISTS' export class GqlAuthorizationError extends GraphQLError { constructor (message) { super(message, { extensions: { code: E_FORBIDDEN } }) } } export class GqlAuthenticationError extends GraphQLError { constructor () { super('you must be logged in', { extensions: { code: E_UNAUTHENTICATED } }) } } export class GqlInputError extends GraphQLError { constructor (message, code) { super(message, { extensions: { code: code || E_BAD_INPUT } }) } }