import { ApolloServer } from 'apollo-server' import responseCachePlugin from 'apollo-server-plugin-response-cache' import { ad } from './lib/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://ifms-pti-web.paas1.pp.ifms.edu.br', 'https://ifms-pti-web.paas1.pp.ifms.edu.br', 'http://ti.pp.ifms.edu.br', 'https://ti.pp.ifms.edu.br' ] } : true, typeDefs, resolvers, subscriptions: { onConnect: connectionParams => { return { authorization: connectionParams.Authorization } } }, schemaDirectives, context: ({ req, connection }) => { return { ad, connection, req } }, plugins: [ responseCachePlugin({ sessionId: requestContext => { return ( requestContext.request.http.headers.get('authorization') || requestContext.request.http.headers.get('Authorization') || null ) } }) ] }) export { server }