1
1
import Route from '@ember/routing/route' ;
2
2
3
3
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 }
9
9
} ;
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
- } ) ;
34
10
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
+ } ) ;
50
31
}
51
- } ) ;
32
+ } ) ;
0 commit comments