ifms-pti/server/src/server.js
2022-08-11 08:22:31 -04:00

61 lines
1.4 KiB
JavaScript
Executable File

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({
introspection: process.env.INTROSPECTION || false,
playground: {
settings: {
'editor.theme': 'light'
}
},
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',
'http://ifms-pti-svr.paas1.pp.ifms.edu.br/',
'https://ifms-pti-svr.paas1.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 }