-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
35 lines (31 loc) · 856 Bytes
/
index.js
File metadata and controls
35 lines (31 loc) · 856 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
const { ApolloServer } = require('apollo-server');
const { PubSub } = require('graphql-subscriptions');
const typeDefs = require('./schema');
const resolvers = require('./resolvers');
const { client } = require('./databaseConnection');
const { getUser } = require('./models/User');
pubsub = new PubSub();
const server = new ApolloServer({
typeDefs,
resolvers,
context: async ({ req }) => {
if (req) {
const token = req.headers.authorization || '';
if (token !== '') {
const user = await getUser(token);
return { user, pubsub };
}
}
return { pubsub };
},
});
server.listen().then(({ url }) => {
console.log(`🚀 Server ready at ${url}`);
});
client.connect((err) => {
if (err) {
console.error('DB connection error', err.stack);
} else {
console.log(`🚀 Database ready.`);
}
});