feat: replace api usage for ModelApi

This commit is contained in:
Michal Dobkiewicz
2022-05-23 09:04:01 +02:00
parent 6a7c1bc111
commit 6bc0cebd1b
4 changed files with 56 additions and 19 deletions

View File

@@ -17,29 +17,28 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { MatDialog } from '@angular/material/dialog'; 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 { from, Observable, of, Subject, zip } from 'rxjs';
import { AspectListDialogComponentData } from './aspect-list-dialog-data.interface'; import { AspectListDialogComponentData } from './aspect-list-dialog-data.interface';
import { AspectListDialogComponent } from './aspect-list-dialog.component'; import { AspectListDialogComponent } from './aspect-list-dialog.component';
import { catchError, map } from 'rxjs/operators'; import { catchError, map } from 'rxjs/operators';
import { AspectEntry, AspectPaging, AspectsApi } from '@alfresco/js-api'; import { AspectEntry, AspectPaging } from '@alfresco/js-api';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
}) })
export class AspectListService { export class AspectListService {
_aspectsApi: AspectsApi; get aspectsApi() {
get aspectsApi(): AspectsApi { return this.apiClientsService.get('ModelClient.aspects');
this._aspectsApi = this._aspectsApi ?? new AspectsApi(this.alfrescoApiService.getInstance());
return this._aspectsApi;
} }
constructor(private alfrescoApiService: AlfrescoApiService, constructor(
private appConfigService: AppConfigService, private apiClientsService: ApiClientsService,
private dialog: MatDialog, private appConfigService: AppConfigService,
private logService: LogService) { private dialog: MatDialog,
} private logService: LogService
) { }
getAspects(): Observable<AspectEntry[]> { getAspects(): Observable<AspectEntry[]> {
const visibleAspectList = this.getVisibleAspects(); const visibleAspectList = this.getVisibleAspects();

View File

@@ -15,9 +15,9 @@
* limitations under the License. * 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 { Injectable } from '@angular/core';
import { AlfrescoApiService } from '@alfresco/adf-core'; import { ApiClientsService } from '@alfresco/adf-core';
import { from, Observable } from 'rxjs'; import { from, Observable } from 'rxjs';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
@Injectable({ @Injectable({
@@ -25,13 +25,11 @@ import { map } from 'rxjs/operators';
}) })
export class ContentTypeService { export class ContentTypeService {
_typesApi: TypesApi; get typesApi() {
get typesApi(): TypesApi { return this.apiClientsService.get('ModelClient.types');
this._typesApi = this._typesApi ?? new TypesApi(this.alfrescoApiService.getInstance());
return this._typesApi;
} }
constructor(private alfrescoApiService: AlfrescoApiService) { constructor(private apiClientsService: ApiClientsService) {
} }
getContentTypeByPrefix(prefixedType: string): Observable<TypeEntry> { getContentTypeByPrefix(prefixedType: string): Observable<TypeEntry> {

View File

@@ -18,13 +18,15 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { ActivitiClientModule } from './activiti/activiti-client.module'; import { ActivitiClientModule } from './activiti/activiti-client.module';
import { DiscoveryClientModule } from './discovery/discovery-client.module'; import { DiscoveryClientModule } from './discovery/discovery-client.module';
import { ModelClientModule } from './model/model-client.module';
import { SearchClientModule } from './search/search-client.module'; import { SearchClientModule } from './search/search-client.module';
@NgModule({ @NgModule({
imports: [ imports: [
ActivitiClientModule, ActivitiClientModule,
DiscoveryClientModule, DiscoveryClientModule,
SearchClientModule SearchClientModule,
ModelClientModule
] ]
}) })
export class AlfrescoJsClientsModule { } export class AlfrescoJsClientsModule { }

View File

@@ -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);
}
}