Skip to content
Snippets Groups Projects
Commit 23ae9a61 authored by Yannis Barlas's avatar Yannis Barlas
Browse files

fix(server): fix Upload scalar resolver

parent 3461a775
No related branches found
No related tags found
2 merge requests!52Docx,!17Graphql api
const config = require('config')
const isEmpty = require('lodash/isEmpty')
const merge = require('lodash/merge')
const { applyMiddleware } = require('graphql-middleware')
const { shield } = require('graphql-shield')
const { GraphQLUpload } = require('graphql-upload')
const { makeExecutableSchema } = require('apollo-server-express')
const logger = require('@pubsweet/logger')
const schema = require('pubsweet-server/src/graphql/schema')
const upload = require('pubsweet-server/src/graphql/definitions/upload')
const tryRequireRelative = require('pubsweet-server/src/helpers/tryRequireRelative')
const emailMiddleware = require('./middleware/email')
// #region BUILD-SCHEMA
// load base types and resolvers
const typeDefs = [
`type Query, type Mutation, type Subscription`,
upload.typeDefs,
]
const resolvers = merge({}, upload.resolvers, {
Upload: GraphQLUpload,
})
// recursively merge in component types and resolvers
function getSchemaRecursively(componentName) {
const component = tryRequireRelative(componentName)
if (component.extending) {
getSchemaRecursively(component.extending)
}
if (component.typeDefs) {
typeDefs.push(component.typeDefs)
}
if (component.resolvers) {
merge(resolvers, component.resolvers)
}
}
if (config.has('pubsweet.components')) {
config.get('pubsweet.components').forEach(componentName => {
getSchemaRecursively(componentName)
})
}
// merge in app-specific types and resolvers from config
if (config.has('pubsweet-server.typeDefs')) {
typeDefs.push(config.get('pubsweet-server.typeDefs'))
}
if (config.has('pubsweet-server.resolvers')) {
merge(resolvers, config.get('pubsweet-server.resolvers'))
}
const schema = makeExecutableSchema({ typeDefs, resolvers })
// #endregion BUILD-SCHEMA
// #region GRAPHQL-MIDDLEWARE
const baseMessage = 'Coko server =>'
const logRegistration = name =>
......@@ -47,6 +99,7 @@ if (!isEmpty(emailConfig)) {
}
console.log('') // eslint-disable-line no-console
// #endregion GRAPHQL-MIDDLEWARE
const schemaWithMiddleWare = applyMiddleware(schema, ...middleware)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment