From 987ca60bd23a3031278820f9e033727fdf85707d Mon Sep 17 00:00:00 2001 From: Uddeshya Singh Date: Tue, 11 Jun 2019 12:48:42 +0530 Subject: [PATCH 1/2] refactor the role acceptance flow --- app/routes/public/role-invites.js | 73 ++++++++++++------------------- 1 file changed, 28 insertions(+), 45 deletions(-) diff --git a/app/routes/public/role-invites.js b/app/routes/public/role-invites.js index 5355c1f1145..d21b11381ff 100644 --- a/app/routes/public/role-invites.js +++ b/app/routes/public/role-invites.js @@ -1,51 +1,34 @@ import Route from '@ember/routing/route'; export default Route.extend({ - beforeModel(transition) { - let payload = { - data: { - token: transition.queryParams.token - } + async beforeModel(transition) { + const { token } = transition.to.queryParams; + const originalEventId = transition.resolvedModels.public.originalId; + const payload = { + data: { token } }; - this.loader - .post('/role_invites/user', payload) - .then(user => { - if (this.get('session.isAuthenticated')) { - if (this.get('authManager.currentUser.email') === user.email) { - this.loader - .post('/role_invites/accept-invite', payload) - .then(invite => { - this.transitionTo('events.view', invite.event); - }) - .catch(e => { - this.notify.error(this.l10n.t('An unexpected error has occurred')); - console.warn(e); - }); - } else { - this.set('session.skipRedirectOnInvalidation', true); - this.session.invalidate(); - this.transitionTo('register', { - queryParams: { - event : `${transition.params.public.event_id}`, - inviteToken : `${transition.queryParams.token}`, - inviteEmail : `${user.email}` - } - }); - } - } else { - this.transitionTo('register', { - queryParams: { - event : `${transition.params.public.event_id}`, - inviteToken : `${transition.queryParams.token}`, - inviteEmail : `${user.email}` - } - }); - } - }) - .catch(e => { - this.notify.error(this.l10n.t('An unexpected error has occurred')); - console.warn(e); - }); + const user = await this.loader.post('/role_invites/user', payload); + + if (this.session.isAuthenticated) { + + if (this.authManager.currentUser.email === user.email) { + const invite = await this.loader.post('/role_invites/accept-invite', payload); + return this.transitionTo( + ['organiser', 'coorganizer'].includes(invite.role) ? 'events.view' : 'public', invite.event + ); + } + + this.set('session.skipRedirectOnInvalidation', true); + this.session.invalidate(); + } + + this.transitionTo('register', { + queryParams: { + event : originalEventId, + inviteToken : token, + inviteEmail : user.email + } + }); } -}); +}); \ No newline at end of file From baf2feaeb8364f843dc101d21be63c023ada494c Mon Sep 17 00:00:00 2001 From: Uddeshya Singh Date: Fri, 14 Jun 2019 20:26:15 +0530 Subject: [PATCH 2/2] fix role acceptance flow --- app/routes/public/role-invites.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/routes/public/role-invites.js b/app/routes/public/role-invites.js index d21b11381ff..2c44f9d84a2 100644 --- a/app/routes/public/role-invites.js +++ b/app/routes/public/role-invites.js @@ -14,9 +14,7 @@ export default Route.extend({ if (this.authManager.currentUser.email === user.email) { const invite = await this.loader.post('/role_invites/accept-invite', payload); - return this.transitionTo( - ['organiser', 'coorganizer'].includes(invite.role) ? 'events.view' : 'public', invite.event - ); + return this.transitionTo('events.view', invite.event); } this.set('session.skipRedirectOnInvalidation', true);