@@ -20,6 +20,7 @@ import ExternalStorageServiceModel from 'ember-osf-web/models/external-storage-s
2020import ExternalComputingServiceModel from 'ember-osf-web/models/external-computing-service' ;
2121import ExternalCitationServiceModel from 'ember-osf-web/models/external-citation-service' ;
2222import ExternalLinkServiceModel from 'ember-osf-web/models/external-link-service' ;
23+ import ExternalRedirectServiceModel from 'ember-osf-web/models/external-redirect-service' ;
2324
2425import UserModel from 'ember-osf-web/models/user' ;
2526import UserReferenceModel from 'ember-osf-web/models/user-reference' ;
@@ -87,6 +88,14 @@ export default class UserAddonManagerComponent extends Component<Args> {
8788 // authorizedAccounts: [] as AuthorizedComputingAccountModel[],
8889 // authorizedServiceIds: [] as string[],
8990 // },
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+ } ,
9099 } ;
91100 @tracked filterText = '' ;
92101 @tracked activeFilterType = FilterTypes . STORAGE ;
@@ -258,6 +267,16 @@ export default class UserAddonManagerComponent extends Component<Args> {
258267 notifyPropertyChange ( this , 'filterTypeMapper' ) ;
259268 }
260269
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+
261280 @task
262281 @waitFor
263282 async getAuthorizedAccounts ( ) {
@@ -334,6 +353,23 @@ export default class UserAddonManagerComponent extends Component<Args> {
334353 ) ) ;
335354 }
336355
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+
337373 @task
338374 @waitFor
339375 async getAddonProviders ( ) {
0 commit comments