From 4800aaa7f309bd797718ba9648d0b0cdb8263093 Mon Sep 17 00:00:00 2001 From: Lin Wang Date: Mon, 3 Jun 2024 14:50:10 +0800 Subject: [PATCH 1/2] Refactor with getDefaultDataSourceId$ Signed-off-by: Lin Wang --- public/services/__tests__/data_source_service.test.ts | 4 ++-- public/services/data_source_service.ts | 4 ++-- public/types.ts | 10 +--------- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/public/services/__tests__/data_source_service.test.ts b/public/services/__tests__/data_source_service.test.ts index 380dbae2..d1db20dc 100644 --- a/public/services/__tests__/data_source_service.test.ts +++ b/public/services/__tests__/data_source_service.test.ts @@ -8,7 +8,7 @@ import { first } from 'rxjs/operators'; import { uiSettingsServiceMock } from '../../../../../src/core/public/mocks'; import { DataSourceOption } from '../../../../../src/plugins/data_source_management/public/components/data_source_menu/types'; -import { DataSourceManagementPluginSetup } from '../../types'; +import { DataSourceManagementPluginSetup } from '../../../../../src/plugins/data_source_management/public'; import { DataSourceService } from '../data_source_service'; const setup = (options?: { @@ -24,10 +24,10 @@ const setup = (options?: { dataSourceSelection: { getSelection$: () => dataSourceSelection$, }, + getDefaultDataSourceId$: jest.fn(() => defaultDataSourceSelection$), }; const dataSource = new DataSourceService(); const defaultDataSourceSelection$ = new BehaviorSubject(options?.defaultDataSourceId ?? null); - uiSettings.get$.mockReturnValue(defaultDataSourceSelection$); const setupResult = dataSource.setup({ uiSettings, dataSourceManagement: diff --git a/public/services/data_source_service.ts b/public/services/data_source_service.ts index 8ddb8fad..f89565e4 100644 --- a/public/services/data_source_service.ts +++ b/public/services/data_source_service.ts @@ -8,7 +8,7 @@ import { first, map } from 'rxjs/operators'; import type { IUiSettingsClient } from '../../../../src/core/public'; import type { DataSourceOption } from '../../../../src/plugins/data_source_management/public/components/data_source_menu/types'; -import type { DataSourceManagementPluginSetup } from '../types'; +import { DataSourceManagementPluginSetup } from '../../../../src/plugins/data_source_management/public'; export enum DataSourceIdFrom { UiSettings, @@ -83,7 +83,7 @@ export class DataSourceService { getDataSourceId$() { return combineLatest([ this.dataSourceId$, - this.uiSettings?.get$('defaultDataSource', null) ?? of(null), + this.dataSourceManagement?.getDefaultDataSourceId$?.(this.uiSettings) ?? of(null), ]).pipe( map(([selectedDataSourceId, defaultDataSourceId]) => { if (selectedDataSourceId !== null) { diff --git a/public/types.ts b/public/types.ts index 02101e14..9f92ab1a 100644 --- a/public/types.ts +++ b/public/types.ts @@ -3,21 +3,13 @@ * SPDX-License-Identifier: Apache-2.0 */ -import type { BehaviorSubject } from 'rxjs'; import { DashboardStart } from '../../../src/plugins/dashboard/public'; import { EmbeddableSetup, EmbeddableStart } from '../../../src/plugins/embeddable/public'; import { IMessage, ISuggestedAction } from '../common/types/chat_saved_object_attributes'; import { IChatContext } from './contexts/chat_context'; import { MessageContentProps } from './tabs/chat/messages/message_content'; import { DataSourceServiceContract, IncontextInsightRegistry } from './services'; -import { DataSourceOption } from '../../../src/plugins/data_source_management/public'; - -// TODO: should replace from DataSourceManagementPluginSetup in DSM plugin after data selection merged -export interface DataSourceManagementPluginSetup { - dataSourceSelection?: { - getSelection$: () => BehaviorSubject>; - }; -} +import { DataSourceManagementPluginSetup } from '../../../src/plugins/data_source_management/public'; export interface RenderProps { props: MessageContentProps; From bc222d779cb531be0c2c499fe29b363f443fccfc Mon Sep 17 00:00:00 2001 From: Lin Wang Date: Mon, 3 Jun 2024 14:56:40 +0800 Subject: [PATCH 2/2] Update change log Signed-off-by: Lin Wang --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0806265a..64701592 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,3 +15,4 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Integrate chatbot with sidecar service ([#164](https://github.com/opensearch-project/dashboards-assistant/pull/164)) - Add data source service ([#191](https://github.com/opensearch-project/dashboards-assistant/pull/191)) - Update router and controller to support MDS ([#190](https://github.com/opensearch-project/dashboards-assistant/pull/190)) +- Refactor default data source retriever ([#197](https://github.com/opensearch-project/dashboards-assistant/pull/197))