Files
Superalgos/server/src/index.js
T
2019-02-14 12:36:43 -03:00

44 lines
1.0 KiB
JavaScript

import express from 'express'
import 'dotenv/config'
import graphqlHTTP from 'express-graphql'
import schema from './schema'
import mongoose from 'mongoose'
import cors from 'cors'
import logger from './config/logger'
import wrongPreshared from './errors/notAllowed.json'
const app = express()
app.post('/graphql', (req, res, next) => {
if (req.headers.preshared === process.env.OPERATIONS_API_PRESHARED) {
next()
} else {
res.send(wrongPreshared)
}
})
// Allow cross origing request
app.use(cors())
// Database Connection
mongoose.connect(`mongodb://${process.env.DB_USERNAME}:${process.env.DB_PASSWORD}@${process.env.DB_DOMAIN}`, { useNewUrlParser: true })
mongoose.connection.once('open', () => {
logger.info('Connected to the DB.')
})
app.use('/graphql', graphqlHTTP(req => {
return {
schema: schema,
context: {
userId: req.headers.userid,
authorization: req.headers.authorization
},
graphiql: true
}
}))
app.listen(process.env.PORT, () => {
logger.info(`Listening on port ${process.env.PORT}.`)
})