From 544ef081dcf7c471da73c2bb701f5c7bf7e03337 Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Thu, 18 Jan 2018 20:09:47 +0100 Subject: [PATCH] Add previous username to notification --- .../Community/containers/FlaggedAccounts.js | 19 +++++++++++++++---- graph/mutators/user.js | 3 ++- graph/setupFunctions.js | 2 +- graph/typeDefs.graphql | 7 ++++++- 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/client/coral-admin/src/routes/Community/containers/FlaggedAccounts.js b/client/coral-admin/src/routes/Community/containers/FlaggedAccounts.js index 788dd2ac5..1d7e089e2 100644 --- a/client/coral-admin/src/routes/Community/containers/FlaggedAccounts.js +++ b/client/coral-admin/src/routes/Community/containers/FlaggedAccounts.js @@ -95,10 +95,18 @@ class FlaggedAccountsContainer extends Component { document: USERNAME_CHANGED_SUBSCRIPTION, updateQuery: ( prev, - { subscriptionData: { data: { usernameChanged: user } } } + { + subscriptionData: { + data: { usernameChanged: { previousUsername, user } }, + }, + } ) => { return handleFlaggedUsernameChange(prev, user, () => { - const msg = t('flagged_usernames.notify_changed', 'TODO', user.username); + const msg = t( + 'flagged_usernames.notify_changed', + previousUsername, + user.username + ); this.props.notify('info', msg); }); }, @@ -263,8 +271,11 @@ const USERNAME_REJECTED_SUBSCRIPTION = gql` const USERNAME_CHANGED_SUBSCRIPTION = gql` subscription TalkAdmin_UsernameChanged { usernameChanged { - ...${getDefinitionName(FlaggedUser.fragments.user)} - ${historyFields} + previousUsername + user { + ...${getDefinitionName(FlaggedUser.fragments.user)} + ${historyFields} + } } } ${FlaggedUser.fragments.user} diff --git a/graph/mutators/user.js b/graph/mutators/user.js index 81340e1ee..f8db7a19e 100644 --- a/graph/mutators/user.js +++ b/graph/mutators/user.js @@ -57,7 +57,8 @@ const stopIgnoringUser = ({ user }, userToStopIgnoring) => { const changeUsername = async (ctx, id, username) => { const user = await UsersService.changeUsername(id, username, ctx.user.id); - ctx.pubsub.publish('usernameChanged', user); + const previousUsername = ctx.user.username; + ctx.pubsub.publish('usernameChanged', { previousUsername, user }); return user; }; diff --git a/graph/setupFunctions.js b/graph/setupFunctions.js index cdc03fda3..12d9d5685 100644 --- a/graph/setupFunctions.js +++ b/graph/setupFunctions.js @@ -129,7 +129,7 @@ const setupFunctions = { } return !args.user_id || user.id === args.user_id; }, - usernameChanged: (options, args, user, context) => { + usernameChanged: (options, args, { user }, context) => { if ( !context.user || (args.user_id !== user.id && diff --git a/graph/typeDefs.graphql b/graph/typeDefs.graphql index 106fc27e6..375d1edc0 100644 --- a/graph/typeDefs.graphql +++ b/graph/typeDefs.graphql @@ -1465,6 +1465,11 @@ type RootMutation { stopIgnoringUser(id: ID!): StopIgnoringUserResponse } +type UsernameChangedPayload { + previousUsername: String + user: User +} + ################################################################################ ## Subscriptions ################################################################################ @@ -1522,7 +1527,7 @@ type Subscription { # Get an update whenever a username has been changed. `user_id` must match id # of current user except for users with the `ADMIN` or `MODERATOR` role. - usernameChanged(user_id: ID): User + usernameChanged(user_id: ID): UsernameChangedPayload } ################################################################################