@@ -20,6 +20,7 @@ import ExternalStorageServiceModel from 'ember-osf-web/models/external-storage-s
20
20
import ExternalComputingServiceModel from 'ember-osf-web/models/external-computing-service' ;
21
21
import ExternalCitationServiceModel from 'ember-osf-web/models/external-citation-service' ;
22
22
import ExternalLinkServiceModel from 'ember-osf-web/models/external-link-service' ;
23
+ import ExternalRedirectServiceModel from 'ember-osf-web/models/external-redirect-service' ;
23
24
24
25
import UserModel from 'ember-osf-web/models/user' ;
25
26
import UserReferenceModel from 'ember-osf-web/models/user-reference' ;
@@ -87,6 +88,14 @@ export default class UserAddonManagerComponent extends Component<Args> {
87
88
// authorizedAccounts: [] as AuthorizedComputingAccountModel[],
88
89
// authorizedServiceIds: [] as string[],
89
90
// },
91
+ [ FilterTypes . REDIRECT_SERVICE ] : {
92
+ modelName : 'external-redirect-service' ,
93
+ fetchProvidersTask : taskFor ( this . getRedirectAddonProviders ) ,
94
+ list : A ( [ ] ) as EmberArray < Provider > ,
95
+ getAuthorizedAccountsTask : taskFor ( this . getAuthorizedRedirectAccounts ) ,
96
+ authorizedAccounts : [ ] as AllAuthorizedAccountTypes [ ] ,
97
+ authorizedServiceIds : [ ] as string [ ] ,
98
+ } ,
90
99
} ;
91
100
@tracked filterText = '' ;
92
101
@tracked activeFilterType = FilterTypes . STORAGE ;
@@ -258,6 +267,16 @@ export default class UserAddonManagerComponent extends Component<Args> {
258
267
notifyPropertyChange ( this , 'filterTypeMapper' ) ;
259
268
}
260
269
270
+ @task
271
+ @waitFor
272
+ async getAuthorizedRedirectAccounts ( ) {
273
+ // Redirect services do not have authorized accounts
274
+ const mappedObject = this . filterTypeMapper [ FilterTypes . REDIRECT_SERVICE ] ;
275
+ mappedObject . authorizedAccounts = [ ] as AllAuthorizedAccountTypes [ ] ;
276
+ mappedObject . authorizedServiceIds = [ ] ;
277
+ notifyPropertyChange ( this , 'filterTypeMapper' ) ;
278
+ }
279
+
261
280
@task
262
281
@waitFor
263
282
async getAuthorizedAccounts ( ) {
@@ -334,6 +353,23 @@ export default class UserAddonManagerComponent extends Component<Args> {
334
353
) ) ;
335
354
}
336
355
356
+ @task
357
+ @waitFor
358
+ async getRedirectAddonProviders ( ) {
359
+ const activeFilterObject = this . filterTypeMapper [ FilterTypes . REDIRECT_SERVICE ] ;
360
+ const serviceRedirectProviders = await taskFor ( this . getExternalProviders )
361
+ . perform ( activeFilterObject . modelName ) as ExternalRedirectServiceModel [ ] ;
362
+ activeFilterObject . list = serviceRedirectProviders . sort ( this . providerSorter )
363
+ . map ( provider => new Provider (
364
+ provider ,
365
+ this . currentUser ,
366
+ undefined ,
367
+ undefined ,
368
+ undefined ,
369
+ this . userReference ,
370
+ ) ) ;
371
+ }
372
+
337
373
@task
338
374
@waitFor
339
375
async getAddonProviders ( ) {
0 commit comments