39 lines
862 B
JavaScript
39 lines
862 B
JavaScript
const users = require('./connectors/users')
|
|
|
|
// Context passed to all resolvers (third argument)
|
|
// req => Query
|
|
// connection => Subscription
|
|
// eslint-disable-next-line no-unused-vars
|
|
module.exports = ({ req, connection }) => {
|
|
// If the websocket context was already resolved
|
|
if (connection && connection.context) return connection.context
|
|
|
|
let rawToken
|
|
// HTTP
|
|
if (req) rawToken = req.get('Authorization')
|
|
// Websocket
|
|
if (connection) rawToken = connection.Authorization
|
|
|
|
// Token
|
|
const token = rawToken ? JSON.parse(rawToken) : null
|
|
let userId
|
|
|
|
// User validation
|
|
if (token && users.validateToken(token)) {
|
|
userId = token.userId
|
|
}
|
|
|
|
// return new Promise(resolve => {
|
|
// setTimeout(() => {
|
|
// resolve({
|
|
// token,
|
|
// userId,
|
|
// })
|
|
// }, 3000)
|
|
// })
|
|
return {
|
|
token,
|
|
userId,
|
|
}
|
|
}
|