From f9f45a5c3b14e7a1ade17a3045c6dbd28c51b837 Mon Sep 17 00:00:00 2001 From: scottybollinger Date: Wed, 3 Feb 2021 15:19:06 -0600 Subject: [PATCH 1/3] Remove comment Verified that this works as expected --- .../workplace_search/views/content_sources/source_logic.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.ts index ba5c29c190f95..d8698242a0c88 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.ts @@ -180,7 +180,6 @@ export const SourceLogic = kea>({ actions.initializeFederatedSummary(sourceId); } } catch (e) { - // TODO: Verify this works once components are there. Not sure if the catch gives a status code. if (e.response.status === 404) { KibanaLogic.values.navigateToUrl(NOT_FOUND_PATH); } else { From 13aa101fe350adccbd12c2cfcf78813499dd959e Mon Sep 17 00:00:00 2001 From: scottybollinger Date: Wed, 3 Feb 2021 16:03:28 -0600 Subject: [PATCH 2/3] Replaces usage from SourceLogic to AddSourceLogic --- .../components/source_settings.tsx | 15 ++++++++------- .../views/settings/components/source_config.tsx | 11 +++++------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/source_settings.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/source_settings.tsx index 5f47fa2d5927b..f2084e7ce8ccb 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/source_settings.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/source_settings.tsx @@ -47,30 +47,31 @@ import { ViewContentHeader } from '../../../components/shared/view_content_heade import { SourceDataItem } from '../../../types'; import { AppLogic } from '../../../app_logic'; +import { AddSourceLogic } from '../components/add_source/add_source_logic'; import { staticSourceData } from '../source_data'; import { SourceLogic } from '../source_logic'; export const SourceSettings: React.FC = () => { - const { - updateContentSource, - removeContentSource, - resetSourceState, - getSourceConfigData, - } = useActions(SourceLogic); + const { updateContentSource, removeContentSource, resetSourceState } = useActions(SourceLogic); + const { getSourceConfigData } = useActions(AddSourceLogic); const { contentSource: { name, id, serviceType }, buttonLoading, - sourceConfigData: { configuredFields }, } = useValues(SourceLogic); + const { + sourceConfigData: { configuredFields }, + } = useValues(AddSourceLogic); + const { isOrganization } = useValues(AppLogic); useEffect(() => { getSourceConfigData(serviceType); return resetSourceState; }, []); + const { configuration: { isPublicKey }, editPath, diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/settings/components/source_config.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/settings/components/source_config.tsx index 52e87311284ff..8b8c1801c9c54 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/settings/components/source_config.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/settings/components/source_config.tsx @@ -14,7 +14,6 @@ import { EuiConfirmModal, EuiOverlayMask } from '@elastic/eui'; import { Loading } from '../../../../shared/loading'; import { SourceDataItem } from '../../../types'; import { staticSourceData } from '../../content_sources/source_data'; -import { SourceLogic } from '../../content_sources/source_logic'; import { AddSourceLogic } from '../../content_sources/components/add_source/add_source_logic'; import { AddSourceHeader } from '../../content_sources/components/add_source/add_source_header'; @@ -30,18 +29,18 @@ export const SourceConfig: React.FC = ({ sourceIndex }) => { const [confirmModalVisible, setConfirmModalVisibility] = useState(false); const { configuration, serviceType } = staticSourceData[sourceIndex] as SourceDataItem; const { deleteSourceConfig } = useActions(SettingsLogic); - const { getSourceConfigData } = useActions(SourceLogic); - const { saveSourceConfig } = useActions(AddSourceLogic); + const { saveSourceConfig, getSourceConfigData } = useActions(AddSourceLogic); const { sourceConfigData: { name, categories }, - dataLoading: sourceDataLoading, - } = useValues(SourceLogic); + dataLoading, + } = useValues(AddSourceLogic); useEffect(() => { getSourceConfigData(serviceType); }, []); - if (sourceDataLoading) return ; + if (dataLoading) return ; + const hideConfirmModal = () => setConfirmModalVisibility(false); const showConfirmModal = () => setConfirmModalVisibility(true); const saveUpdatedConfig = () => saveSourceConfig(true); From 402661dd830f4a3b7a4acf7d437e4aa6151b6ded Mon Sep 17 00:00:00 2001 From: scottybollinger Date: Wed, 3 Feb 2021 16:05:29 -0600 Subject: [PATCH 3/3] Remove unused duplicate code --- .../content_sources/source_logic.test.ts | 48 +------------------ .../views/content_sources/source_logic.ts | 41 ---------------- 2 files changed, 1 insertion(+), 88 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.test.ts index a0efbfe4aca1d..ebff9e06998c5 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.test.ts @@ -17,11 +17,7 @@ jest.mock('../../app_logic', () => ({ AppLogic: { values: { isOrganization: true } }, })); -import { - fullContentSources, - sourceConfigData, - contentItems, -} from '../../__mocks__/content_sources.mock'; +import { fullContentSources, contentItems } from '../../__mocks__/content_sources.mock'; import { meta } from '../../__mocks__/meta.mock'; import { DEFAULT_META } from '../../../shared/constants'; @@ -45,7 +41,6 @@ describe('SourceLogic', () => { const defaultValues = { contentSource: {}, contentItems: [], - sourceConfigData: {}, dataLoading: true, sectionLoading: true, buttonLoading: false, @@ -87,13 +82,6 @@ describe('SourceLogic', () => { expect(setSuccessMessage).toHaveBeenCalled(); }); - it('setSourceConfigData', () => { - SourceLogic.actions.setSourceConfigData(sourceConfigData); - - expect(SourceLogic.values.sourceConfigData).toEqual(sourceConfigData); - expect(SourceLogic.values.dataLoading).toEqual(false); - }); - it('setSearchResults', () => { SourceLogic.actions.setSearchResults(searchServerResponse); @@ -401,40 +389,6 @@ describe('SourceLogic', () => { }); }); - describe('getSourceConfigData', () => { - const serviceType = 'github'; - - it('calls API and sets values', async () => { - AppLogic.values.isOrganization = true; - - const setSourceConfigDataSpy = jest.spyOn(SourceLogic.actions, 'setSourceConfigData'); - const promise = Promise.resolve(contentSource); - http.get.mockReturnValue(promise); - SourceLogic.actions.getSourceConfigData(serviceType); - - expect(http.get).toHaveBeenCalledWith( - `/api/workplace_search/org/settings/connectors/${serviceType}` - ); - await promise; - expect(setSourceConfigDataSpy).toHaveBeenCalled(); - }); - - it('handles error', async () => { - const error = { - response: { - error: 'this is an error', - status: 400, - }, - }; - const promise = Promise.reject(error); - http.get.mockReturnValue(promise); - SourceLogic.actions.getSourceConfigData(serviceType); - await expectedAsyncError(promise); - - expect(flashAPIErrors).toHaveBeenCalledWith(error); - }); - }); - it('resetSourceState', () => { SourceLogic.actions.resetSourceState(); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.ts index d8698242a0c88..a7c0eb32a7dde 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.ts @@ -26,7 +26,6 @@ import { ContentSourceFullData, Meta, DocumentSummaryItem, SourceContentItem } f export interface SourceActions { onInitializeSource(contentSource: ContentSourceFullData): ContentSourceFullData; onUpdateSourceName(name: string): string; - setSourceConfigData(sourceConfigData: SourceConfigData): SourceConfigData; setSearchResults(searchResultsResponse: SearchResultsResponse): SearchResultsResponse; initializeFederatedSummary(sourceId: string): { sourceId: string }; onUpdateSummary(summary: DocumentSummaryItem[]): DocumentSummaryItem[]; @@ -40,28 +39,9 @@ export interface SourceActions { resetSourceState(): void; removeContentSource(sourceId: string): { sourceId: string }; initializeSource(sourceId: string): { sourceId: string }; - getSourceConfigData(serviceType: string): { serviceType: string }; setButtonNotLoading(): void; } -interface SourceConfigData { - serviceType: string; - name: string; - configured: boolean; - categories: string[]; - needsPermissions?: boolean; - privateSourcesEnabled: boolean; - configuredFields: { - publicKey: string; - privateKey: string; - consumerKey: string; - baseUrl?: string; - clientId?: string; - clientSecret?: string; - }; - accountContextOnly?: boolean; -} - interface SourceValues { contentSource: ContentSourceFullData; dataLoading: boolean; @@ -70,7 +50,6 @@ interface SourceValues { contentItems: SourceContentItem[]; contentMeta: Meta; contentFilterValue: string; - sourceConfigData: SourceConfigData; } interface SearchResultsResponse { @@ -83,7 +62,6 @@ export const SourceLogic = kea>({ actions: { onInitializeSource: (contentSource: ContentSourceFullData) => contentSource, onUpdateSourceName: (name: string) => name, - setSourceConfigData: (sourceConfigData: SourceConfigData) => sourceConfigData, onUpdateSummary: (summary: object[]) => summary, setSearchResults: (searchResultsResponse: SearchResultsResponse) => searchResultsResponse, setContentFilterValue: (contentFilterValue: string) => contentFilterValue, @@ -95,7 +73,6 @@ export const SourceLogic = kea>({ removeContentSource: (sourceId: string) => ({ sourceId, }), - getSourceConfigData: (serviceType: string) => ({ serviceType }), resetSourceState: () => true, setButtonNotLoading: () => false, }, @@ -114,17 +91,10 @@ export const SourceLogic = kea>({ }), }, ], - sourceConfigData: [ - {} as SourceConfigData, - { - setSourceConfigData: (_, sourceConfigData) => sourceConfigData, - }, - ], dataLoading: [ true, { onInitializeSource: () => false, - setSourceConfigData: () => false, resetSourceState: () => false, }, ], @@ -132,7 +102,6 @@ export const SourceLogic = kea>({ false, { setButtonNotLoading: () => false, - setSourceConfigData: () => false, resetSourceState: () => false, removeContentSource: () => true, }, @@ -258,16 +227,6 @@ export const SourceLogic = kea>({ actions.setButtonNotLoading(); } }, - getSourceConfigData: async ({ serviceType }) => { - const route = `/api/workplace_search/org/settings/connectors/${serviceType}`; - - try { - const response = await HttpLogic.values.http.get(route); - actions.setSourceConfigData(response); - } catch (e) { - flashAPIErrors(e); - } - }, onUpdateSourceName: (name: string) => { setSuccessMessage( i18n.translate(