107 lines
2.1 KiB
JavaScript
107 lines
2.1 KiB
JavaScript
const { GraphQLError } = require('graphql')
|
|
const { ApolloServerErrorCode } = require('@apollo/server/errors')
|
|
|
|
class AuthenticationError extends GraphQLError {
|
|
constructor() {
|
|
super('Authentication failed', {
|
|
extensions: {
|
|
code: 'UNAUTHENTICATED',
|
|
},
|
|
})
|
|
}
|
|
}
|
|
|
|
class InvalidCredentialsError extends GraphQLError {
|
|
constructor() {
|
|
super('Invalid credentials', {
|
|
extensions: {
|
|
code: 'INVALID_CREDENTIALS',
|
|
},
|
|
})
|
|
}
|
|
}
|
|
|
|
class UserAlreadyExistsError extends GraphQLError {
|
|
constructor() {
|
|
super('User already exists', {
|
|
extensions: {
|
|
code: 'USER_ALREADY_EXISTS',
|
|
},
|
|
})
|
|
}
|
|
}
|
|
|
|
class InvalidTwoFactorError extends GraphQLError {
|
|
constructor() {
|
|
super('Invalid two-factor code', {
|
|
extensions: {
|
|
code: 'INVALID_TWO_FACTOR_CODE',
|
|
},
|
|
})
|
|
}
|
|
}
|
|
|
|
class InvalidUrlError extends GraphQLError {
|
|
constructor() {
|
|
super('Invalid URL token', {
|
|
extensions: {
|
|
code: 'INVALID_URL_TOKEN',
|
|
},
|
|
})
|
|
}
|
|
}
|
|
|
|
class UserInputError extends GraphQLError {
|
|
constructor() {
|
|
super('User input error', {
|
|
extensions: {
|
|
code: ApolloServerErrorCode.BAD_USER_INPUT,
|
|
},
|
|
})
|
|
}
|
|
}
|
|
|
|
class ResourceNotFoundError extends GraphQLError {
|
|
constructor(details = {}) {
|
|
super('Resource not found', {
|
|
extensions: {
|
|
code: 'RESOURCE_NOT_FOUND',
|
|
...details,
|
|
},
|
|
})
|
|
}
|
|
}
|
|
|
|
class ResourceAlreadyExistsError extends GraphQLError {
|
|
constructor(details = {}) {
|
|
super('Resource already exists', {
|
|
extensions: {
|
|
code: 'RESOURCE_ALREADY_EXISTS',
|
|
...details,
|
|
},
|
|
})
|
|
}
|
|
}
|
|
|
|
class ResourceHasDependenciesError extends GraphQLError {
|
|
constructor(details = {}) {
|
|
super('Resource has dependencies', {
|
|
extensions: {
|
|
code: 'RESOURCE_HAS_DEPENDENCIES',
|
|
...details,
|
|
},
|
|
})
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
AuthenticationError,
|
|
InvalidCredentialsError,
|
|
UserAlreadyExistsError,
|
|
InvalidTwoFactorError,
|
|
InvalidUrlError,
|
|
UserInputError,
|
|
ResourceNotFoundError,
|
|
ResourceAlreadyExistsError,
|
|
ResourceHasDependenciesError,
|
|
}
|