2020-11-06 13:31:28 +00:00
|
|
|
import { ApolloServer } from 'apollo-server'
|
|
|
|
import responseCachePlugin from 'apollo-server-plugin-response-cache'
|
|
|
|
|
|
|
|
import { ad } from './utils/activedirectory'
|
|
|
|
|
|
|
|
import { typeDefs } from './typeDefs'
|
|
|
|
import { resolvers } from './resolvers'
|
|
|
|
import { schemaDirectives } from './schemaDirectives'
|
|
|
|
|
|
|
|
const server = new ApolloServer({
|
|
|
|
cors:
|
|
|
|
process.env.NODE_ENV === 'production'
|
|
|
|
? {
|
|
|
|
origin: ['http://ti.pp.ifms.edu.br']
|
|
|
|
}
|
|
|
|
: true,
|
|
|
|
typeDefs,
|
|
|
|
resolvers,
|
2020-12-03 21:27:03 +00:00
|
|
|
subscriptions: {
|
|
|
|
onConnect: connectionParams => ({
|
|
|
|
authorization: connectionParams.authorization
|
|
|
|
})
|
|
|
|
},
|
2020-11-06 13:31:28 +00:00
|
|
|
schemaDirectives,
|
2020-12-03 21:27:03 +00:00
|
|
|
context: ({ req, connection }) => {
|
2020-11-06 13:31:28 +00:00
|
|
|
return {
|
|
|
|
ad,
|
2020-12-03 21:27:03 +00:00
|
|
|
connection,
|
2020-11-06 13:31:28 +00:00
|
|
|
req
|
|
|
|
}
|
2020-12-03 21:27:03 +00:00
|
|
|
},
|
2020-11-06 13:31:28 +00:00
|
|
|
plugins: [
|
|
|
|
responseCachePlugin({
|
|
|
|
sessionId: requestContext =>
|
|
|
|
requestContext.request.http.headers.get('Authorization') || null
|
|
|
|
})
|
|
|
|
]
|
|
|
|
})
|
|
|
|
|
|
|
|
export { server }
|