diff --git a/packages/component-user/resolvers.js b/packages/component-user/resolvers.js index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0af14ced5b4229ad0e61205a893ab24dc3a1e5b4 100644 --- a/packages/component-user/resolvers.js +++ b/packages/component-user/resolvers.js @@ -0,0 +1,32 @@ +const Chance = require('chance') + +const chance = new Chance() +const resolvers = { + Mutation: { + async addUserWithConfirmationEmail(_, { input }, ctx) { + console.log('ROLE:', input.role) + + input.notifications = { + email: { + system: true, + user: true, + }, + } + + input.accessTokens = { + confirmation: chance.hash(), + unsubscribe: chance.hash(), + } + + try { + const user = await ctx.connectors.User.create(input, ctx) + console.log(user) + return user + } catch (e) { + console.log(e) + } + }, + }, +} + +module.exports = resolvers diff --git a/packages/component-user/typeDefs.js b/packages/component-user/typeDefs.js index 3583a27be3d3a91e4f8aeb6de76bb57b59a1a001..c6f217394d4a36380a3c33a8050935d8d3ff3d05 100644 --- a/packages/component-user/typeDefs.js +++ b/packages/component-user/typeDefs.js @@ -17,15 +17,22 @@ module.exports = ` } extend input UserInput { - isActive: Boolean - isConfirmed: Boolean firstName: String lastName: String title: String country: String affiliation: String - admin: Boolean - editorInChief: Boolean - handlingEditor: Boolean + role: AllowedRole! + } + + extend type Mutation { + addUserWithConfirmationEmail(input: UserInput!): User + } + + enum AllowedRole { + editorInChief + handlingEditor + admin + author } ` diff --git a/packages/xpub-faraday/config/default.js b/packages/xpub-faraday/config/default.js index 13eed68fde3e75c0cea41cde6d77d128783590d3..a56d232c5df14e49c1bffa08de1ce55e0804543e 100644 --- a/packages/xpub-faraday/config/default.js +++ b/packages/xpub-faraday/config/default.js @@ -1,9 +1,9 @@ require('dotenv').config() const path = require('path') -const get = require('lodash/get') const logger = require('winston') const components = require('./components.json') const journalConfig = require('../app/config/journal') +const { merge, get } = require('lodash') const users = require('../../component-user') @@ -49,7 +49,7 @@ module.exports = { enableExperimentalGraphql: true, graphiql: true, typeDefs: `${users.typeDefs}`, - // resolvers, + resolvers: merge({}, users.resolvers), }, 'pubsweet-client': { API_ENDPOINT: '/api',