Skip to content

Commit 4d05048

Browse files
uds5501niranjan94
authored andcommitted
fix: Restructure and update role-invite flow (#3091)
* refactor the role acceptance flow * fix role acceptance flow
1 parent 2a7fab7 commit 4d05048

File tree

1 file changed

+26
-45
lines changed

1 file changed

+26
-45
lines changed

app/routes/public/role-invites.js

Lines changed: 26 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,32 @@
11
import Route from '@ember/routing/route';
22

33
export default Route.extend({
4-
beforeModel(transition) {
5-
let payload = {
6-
data: {
7-
token: transition.queryParams.token
8-
}
4+
async beforeModel(transition) {
5+
const { token } = transition.to.queryParams;
6+
const originalEventId = transition.resolvedModels.public.originalId;
7+
const payload = {
8+
data: { token }
99
};
10-
this.loader
11-
.post('/role_invites/user', payload)
12-
.then(user => {
13-
if (this.get('session.isAuthenticated')) {
14-
if (this.get('authManager.currentUser.email') === user.email) {
15-
this.loader
16-
.post('/role_invites/accept-invite', payload)
17-
.then(invite => {
18-
this.transitionTo('events.view', invite.event);
19-
})
20-
.catch(e => {
21-
this.notify.error(this.l10n.t('An unexpected error has occurred'));
22-
console.warn(e);
23-
});
24-
} else {
25-
this.set('session.skipRedirectOnInvalidation', true);
26-
this.session.invalidate();
27-
this.transitionTo('register', {
28-
queryParams: {
29-
event : `${transition.params.public.event_id}`,
30-
inviteToken : `${transition.queryParams.token}`,
31-
inviteEmail : `${user.email}`
32-
}
33-
});
3410

35-
}
36-
} else {
37-
this.transitionTo('register', {
38-
queryParams: {
39-
event : `${transition.params.public.event_id}`,
40-
inviteToken : `${transition.queryParams.token}`,
41-
inviteEmail : `${user.email}`
42-
}
43-
});
44-
}
45-
})
46-
.catch(e => {
47-
this.notify.error(this.l10n.t('An unexpected error has occurred'));
48-
console.warn(e);
49-
});
11+
const user = await this.loader.post('/role_invites/user', payload);
12+
13+
if (this.session.isAuthenticated) {
14+
15+
if (this.authManager.currentUser.email === user.email) {
16+
const invite = await this.loader.post('/role_invites/accept-invite', payload);
17+
return this.transitionTo('events.view', invite.event);
18+
}
19+
20+
this.set('session.skipRedirectOnInvalidation', true);
21+
this.session.invalidate();
22+
}
23+
24+
this.transitionTo('register', {
25+
queryParams: {
26+
event : originalEventId,
27+
inviteToken : token,
28+
inviteEmail : user.email
29+
}
30+
});
5031
}
51-
});
32+
});

0 commit comments

Comments
 (0)