-
479cc603
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
identity.resolvers.js 1.12 KiB
const logger = require('@pubsweet/logger')
const { pubsubManager } = require('pubsweet-server')
const {
createOAuthIdentity,
hasValidRefreshToken,
} = require('./identity.controller')
const { getUser } = require('../user/user.controller')
const {
labels: { IDENTITY_RESOLVER },
} = require('./constants')
const {
subscriptions: { USER_UPDATED },
} = require('../user/constants')
const createOAuthIdentityResolver = async (
_,
{ provider, sessionState, code },
ctx,
) => {
try {
logger.info(`${IDENTITY_RESOLVER} createOAuthIdentity`)
const userId = ctx.user
const identity = await createOAuthIdentity(
userId,
provider,
sessionState,
code,
)
const pubsub = await pubsubManager.getPubsub()
const user = await getUser(userId)
pubsub.publish(USER_UPDATED, {
userUpdated: user,
})
return identity
} catch (e) {
logger.error(`${IDENTITY_RESOLVER} createOAuthIdentity: ${e.message}`)
throw new Error(e)
}
}
module.exports = {
Mutation: {
createOAuthIdentity: createOAuthIdentityResolver,
},
Identity: {
hasValidRefreshToken,
},
}