diff --git a/lib/content-services/src/lib/agent/services/agent.service.spec.ts b/lib/content-services/src/lib/agent/services/agent.service.spec.ts index f610adcae3..88c0d631a2 100644 --- a/lib/content-services/src/lib/agent/services/agent.service.spec.ts +++ b/lib/content-services/src/lib/agent/services/agent.service.spec.ts @@ -17,20 +17,21 @@ import { TestBed } from '@angular/core/testing'; import { CoreTestingModule } from '@alfresco/adf-core'; -import { Agent, AgentPaging, AgentsApi, AgentWithAvatar } from '@alfresco/js-api'; import { AgentService } from './agent.service'; -import { AlfrescoApiService } from '../../services/alfresco-api.service'; +import { Agent, AgentPaging } from '@alfresco/js-api'; const agent1: Agent = { id: '1', name: 'HR Agent', - description: 'Your Claims Doc Agent streamlines the extraction, analysis, and management of data from insurance claims documents.' + description: 'Your Claims Doc Agent streamlines the extraction, analysis, and management of data from insurance claims documents.', + avatarUrl: '' }; const agent2: Agent = { id: '2', name: 'Policy Agent', - description: 'Your Claims Doc Agent streamlines the extraction, analysis, and management of data from insurance claims documents.' + description: 'Your Claims Doc Agent streamlines the extraction, analysis, and management of data from insurance claims documents.', + avatarUrl: '' }; const agentPagingObjectMock: AgentPaging = { @@ -46,23 +47,10 @@ const agentPagingObjectMock: AgentPaging = { } }; -const avatarAgentMock = ''; - -const agentWithAvatarListMock: AgentWithAvatar[] = [ - { - ...agent1, - avatar: avatarAgentMock - }, - { - ...agent2, - avatar: avatarAgentMock - } -]; +const agentWithAvatarListMock: Agent[] = [agent1, agent2]; describe('AgentService', () => { let agentService: AgentService; - let apiService: AlfrescoApiService; - let agentsApi: AgentsApi; beforeEach(() => { TestBed.configureTestingModule({ @@ -70,11 +58,6 @@ describe('AgentService', () => { }); agentService = TestBed.inject(AgentService); - apiService = TestBed.inject(AlfrescoApiService); - agentsApi = new AgentsApi(apiService.getInstance()); - - spyOn(agentsApi, 'getAgentAvatar').and.returnValue(Promise.resolve(avatarAgentMock)); - spyOn(agentService.agentsApi, 'getAgentAvatar').and.returnValue(Promise.resolve(avatarAgentMock)); }); it('should load agents', (done) => { @@ -86,12 +69,4 @@ describe('AgentService', () => { done(); }); }); - - it('should get agent avatar', (done) => { - agentService.getAgentAvatar('avatarId').subscribe((response) => { - expect(response).toEqual(avatarAgentMock); - expect(agentService.agentsApi.getAgentAvatar).toHaveBeenCalledWith('avatarId'); - done(); - }); - }); }); diff --git a/lib/content-services/src/lib/agent/services/agent.service.ts b/lib/content-services/src/lib/agent/services/agent.service.ts index 64ac1bc9a2..9fb7d64a6f 100644 --- a/lib/content-services/src/lib/agent/services/agent.service.ts +++ b/lib/content-services/src/lib/agent/services/agent.service.ts @@ -16,9 +16,9 @@ */ import { Injectable } from '@angular/core'; -import { AgentsApi, AgentWithAvatar } from '@alfresco/js-api'; -import { BehaviorSubject, forkJoin, from, Observable, of } from 'rxjs'; -import { switchMap } from 'rxjs/operators'; +import { Agent, AgentsApi } from '@alfresco/js-api'; +import { BehaviorSubject, from, Observable, of } from 'rxjs'; +import { map, switchMap } from 'rxjs/operators'; import { AlfrescoApiService } from '../../services'; @Injectable({ @@ -26,7 +26,7 @@ import { AlfrescoApiService } from '../../services'; }) export class AgentService { private _agentsApi: AgentsApi; - private agents = new BehaviorSubject([]); + private agents = new BehaviorSubject([]); get agentsApi(): AgentsApi { this._agentsApi = this._agentsApi ?? new AgentsApi(this.apiService.getInstance()); @@ -42,35 +42,20 @@ export class AgentService { * * @returns AgentWithAvatar[] list containing agents. */ - getAgents(): Observable { + getAgents(): Observable { return this.agents$.pipe( switchMap((agentsList) => { if (agentsList.length) { return of(agentsList); } return from(this.agentsApi.getAgents()).pipe( - switchMap((paging) => { - const agents = paging.list.entries.map((agentEntry) => agentEntry.entry); - // TODO: fetch avatars https://hyland.atlassian.net/browse/ACS-8695 - return forkJoin({ agents: of(agents), avatars: forkJoin(agents.map(() => of(``))) }); - }), - switchMap(({ agents, avatars }) => { - const agentsWithAvatar = agents.map((agent, index) => ({ ...agent, avatar: avatars[index] })); - this.agents.next(agentsWithAvatar); - return of(agentsWithAvatar); + map((paging) => { + const agentEntries = paging.list.entries.map((agentEntry) => agentEntry.entry); + this.agents.next(agentEntries); + return agentEntries; }) ); }) ); } - - /** - * Gets agent avatar by agent id. - * - * @param agentId agent unique id. - * @returns string with an image. - */ - getAgentAvatar(agentId: string): Observable { - return from(this._agentsApi.getAgentAvatar(agentId)); - } } diff --git a/lib/js-api/src/api/content-rest-api/docs/AgentsApi.md b/lib/js-api/src/api/content-rest-api/docs/AgentsApi.md index 0e75c18e8b..a29931172c 100644 --- a/lib/js-api/src/api/content-rest-api/docs/AgentsApi.md +++ b/lib/js-api/src/api/content-rest-api/docs/AgentsApi.md @@ -3,7 +3,6 @@ | Method | HTTP request | Description | |-----------------------------------|----------------------------------------------|--------------------------| | [getAgents](#getAgents) | **GET** /agents | Gets all agents. | -| [getAgentAvatar](#getAgentAvatar) | **GET** /agents/${agentId}/avatars/-default- | Gets agent avatar by id. | ## getAgents @@ -47,31 +46,6 @@ agentsApi.getAgents().then((agents) => { **Return type**: [AgentPaging](#AgentPaging) -## getAgentAvatar - -Gets agent avatar by agent id. - -**Parameters** - -| Name | Type | -|---------------|----------| -| **agentId** | string | - -**Example** - -```javascript -import { AlfrescoApi, AgentsApi } from '@alfresco/js-api'; - -const alfrescoApi = new AlfrescoApi(/*..*/); -const agentsApi = new AgentsApi(alfrescoApi); - -agentsApi.getAgentAvatar('agentId').then((agentAvatarImage) => { - console.log('API called successfully. Returned data: ' + agentAvatarImage); -}); -``` - -**Return type**: String - # Models ## AgentPaging diff --git a/lib/js-api/src/api/content-rest-api/model/agent.ts b/lib/js-api/src/api/content-rest-api/model/agent.ts index 8684990ff2..3c19941cce 100644 --- a/lib/js-api/src/api/content-rest-api/model/agent.ts +++ b/lib/js-api/src/api/content-rest-api/model/agent.ts @@ -19,4 +19,5 @@ export interface Agent { id: string; name: string; description: string; + avatarUrl?: string; } diff --git a/lib/js-api/src/api/content-rest-api/model/agentWithAvatar.ts b/lib/js-api/src/api/content-rest-api/model/agentWithAvatar.ts deleted file mode 100644 index ee32489581..0000000000 --- a/lib/js-api/src/api/content-rest-api/model/agentWithAvatar.ts +++ /dev/null @@ -1,22 +0,0 @@ -/*! - * @license - * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * 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 { Agent } from './agent'; - -export interface AgentWithAvatar extends Agent { - avatar: string; -} diff --git a/lib/js-api/src/api/content-rest-api/model/index.ts b/lib/js-api/src/api/content-rest-api/model/index.ts index 3df2aa5863..b375236317 100644 --- a/lib/js-api/src/api/content-rest-api/model/index.ts +++ b/lib/js-api/src/api/content-rest-api/model/index.ts @@ -28,7 +28,6 @@ export * from './activityEntry'; export * from './activityPaging'; export * from './activityPagingList'; export * from './agent'; -export * from './agentWithAvatar'; export * from './agentEntry'; export * from './agentPaging'; export * from './agentPagingList';