From b8df38a6ebe251f9e17eb74fe5f1520153802d25 Mon Sep 17 00:00:00 2001 From: Sebastian Mihalache <sebi.mihalache@gmail.com> Date: Tue, 11 Dec 2018 11:33:49 +0200 Subject: [PATCH] feat(user): addUserWithConfirmationEmail --- packages/component-user/resolvers.js | 32 +++++++++++++++++++++++++ packages/component-user/typeDefs.js | 17 +++++++++---- packages/xpub-faraday/config/default.js | 4 ++-- 3 files changed, 46 insertions(+), 7 deletions(-) diff --git a/packages/component-user/resolvers.js b/packages/component-user/resolvers.js index e69de29bb..0af14ced5 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 3583a27be..c6f217394 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 13eed68fd..a56d232c5 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', -- GitLab