diff --git a/lib/content-services/src/lib/aspect-list/aspect-list.service.ts b/lib/content-services/src/lib/aspect-list/aspect-list.service.ts index cb8655459e..c41b7ab913 100644 --- a/lib/content-services/src/lib/aspect-list/aspect-list.service.ts +++ b/lib/content-services/src/lib/aspect-list/aspect-list.service.ts @@ -17,29 +17,28 @@ import { Injectable } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; -import { AlfrescoApiService, AppConfigService, LogService } from '@alfresco/adf-core'; +import { ApiClientsService, AppConfigService, LogService } from '@alfresco/adf-core'; import { from, Observable, of, Subject, zip } from 'rxjs'; import { AspectListDialogComponentData } from './aspect-list-dialog-data.interface'; import { AspectListDialogComponent } from './aspect-list-dialog.component'; import { catchError, map } from 'rxjs/operators'; -import { AspectEntry, AspectPaging, AspectsApi } from '@alfresco/js-api'; +import { AspectEntry, AspectPaging } from '@alfresco/js-api'; @Injectable({ providedIn: 'root' }) export class AspectListService { - _aspectsApi: AspectsApi; - get aspectsApi(): AspectsApi { - this._aspectsApi = this._aspectsApi ?? new AspectsApi(this.alfrescoApiService.getInstance()); - return this._aspectsApi; + get aspectsApi() { + return this.apiClientsService.get('ModelClient.aspects'); } - constructor(private alfrescoApiService: AlfrescoApiService, - private appConfigService: AppConfigService, - private dialog: MatDialog, - private logService: LogService) { - } + constructor( + private apiClientsService: ApiClientsService, + private appConfigService: AppConfigService, + private dialog: MatDialog, + private logService: LogService + ) { } getAspects(): Observable { const visibleAspectList = this.getVisibleAspects(); diff --git a/lib/content-services/src/lib/content-type/content-type.service.ts b/lib/content-services/src/lib/content-type/content-type.service.ts index 5c3913717f..e520558934 100644 --- a/lib/content-services/src/lib/content-type/content-type.service.ts +++ b/lib/content-services/src/lib/content-type/content-type.service.ts @@ -15,9 +15,9 @@ * limitations under the License. */ -import { TypeEntry, TypePaging, TypesApi } from '@alfresco/js-api'; +import { TypeEntry, TypePaging } from '@alfresco/js-api'; import { Injectable } from '@angular/core'; -import { AlfrescoApiService } from '@alfresco/adf-core'; +import { ApiClientsService } from '@alfresco/adf-core'; import { from, Observable } from 'rxjs'; import { map } from 'rxjs/operators'; @Injectable({ @@ -25,13 +25,11 @@ import { map } from 'rxjs/operators'; }) export class ContentTypeService { - _typesApi: TypesApi; - get typesApi(): TypesApi { - this._typesApi = this._typesApi ?? new TypesApi(this.alfrescoApiService.getInstance()); - return this._typesApi; + get typesApi() { + return this.apiClientsService.get('ModelClient.types'); } - constructor(private alfrescoApiService: AlfrescoApiService) { + constructor(private apiClientsService: ApiClientsService) { } getContentTypeByPrefix(prefixedType: string): Observable { diff --git a/lib/core/api/clients/alfresco-js-clients.module.ts b/lib/core/api/clients/alfresco-js-clients.module.ts index e9eb361372..0ae788aebf 100644 --- a/lib/core/api/clients/alfresco-js-clients.module.ts +++ b/lib/core/api/clients/alfresco-js-clients.module.ts @@ -18,13 +18,15 @@ import { NgModule } from '@angular/core'; import { ActivitiClientModule } from './activiti/activiti-client.module'; import { DiscoveryClientModule } from './discovery/discovery-client.module'; +import { ModelClientModule } from './model/model-client.module'; import { SearchClientModule } from './search/search-client.module'; @NgModule({ imports: [ ActivitiClientModule, DiscoveryClientModule, - SearchClientModule + SearchClientModule, + ModelClientModule ] }) export class AlfrescoJsClientsModule { } diff --git a/lib/core/api/clients/model/model-client.module.ts b/lib/core/api/clients/model/model-client.module.ts new file mode 100644 index 0000000000..5aeff8ad3f --- /dev/null +++ b/lib/core/api/clients/model/model-client.module.ts @@ -0,0 +1,38 @@ +/*! + * @license + * Copyright 2019 Alfresco Software, Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { AspectsApi, TypesApi } from '@alfresco/js-api'; +import { NgModule } from '@angular/core'; +import { ApiClientsService } from '../../api-clients.service'; + +declare global { + // eslint-disable-next-line @typescript-eslint/no-namespace + namespace Api { + interface ApiRegistry { + ['ModelClient.aspects']: AspectsApi; + ['ModelClient.types']: TypesApi; + } + } +} + +@NgModule() +export class ModelClientModule { + constructor(private apiClientsService: ApiClientsService) { + this.apiClientsService.register('ModelClient.aspects', AspectsApi); + this.apiClientsService.register('ModelClient.types', TypesApi); + } +}