From 19a93c6554a092d98dcdff052e1daa70462248d3 Mon Sep 17 00:00:00 2001 From: twwu Date: Fri, 1 Aug 2025 14:04:01 +0800 Subject: [PATCH] feat: Enhance Notion integration by adding credential_id to NotionInfo and updating related functions --- web/app/components/base/notion-page-selector/base.tsx | 6 +++--- web/app/components/datasets/create/step-two/index.tsx | 2 +- web/models/datasets.ts | 1 + web/service/knowledge/use-create-dataset.ts | 5 ++++- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/web/app/components/base/notion-page-selector/base.tsx b/web/app/components/base/notion-page-selector/base.tsx index 88ce343c47..1c54b57a18 100644 --- a/web/app/components/base/notion-page-selector/base.tsx +++ b/web/app/components/base/notion-page-selector/base.tsx @@ -73,15 +73,15 @@ const NotionPageSelector = ({ const selectedPagesId = new Set() const boundPagesId = new Set() const notionWorkspaces = notionsPages?.notion_info || [] - const pagesMap = notionWorkspaces.reduce((prev: DataSourceNotionPageMap, next: DataSourceNotionWorkspace) => { - next.pages.forEach((page) => { + const pagesMap = notionWorkspaces.reduce((prev: DataSourceNotionPageMap, cur: DataSourceNotionWorkspace) => { + cur.pages.forEach((page) => { if (page.is_bound) { selectedPagesId.add(page.page_id) boundPagesId.add(page.page_id) } prev[page.page_id] = { ...page, - workspace_id: next.workspace_id, + workspace_id: cur.workspace_id, } }) diff --git a/web/app/components/datasets/create/step-two/index.tsx b/web/app/components/datasets/create/step-two/index.tsx index ed63f26b1b..777d198bff 100644 --- a/web/app/components/datasets/create/step-two/index.tsx +++ b/web/app/components/datasets/create/step-two/index.tsx @@ -472,7 +472,7 @@ const StepTwo = ({ } } if (dataSourceType === DataSourceType.NOTION) - params.data_source.info_list.notion_info_list = getNotionInfo(notionPages) + params.data_source.info_list.notion_info_list = getNotionInfo(notionPages, notionCredentialId) if (dataSourceType === DataSourceType.WEB) { params.data_source.info_list.website_info_list = getWebsiteInfo({ diff --git a/web/models/datasets.ts b/web/models/datasets.ts index b23f2cecd9..af35281fd1 100644 --- a/web/models/datasets.ts +++ b/web/models/datasets.ts @@ -410,6 +410,7 @@ export type DataSource = { export type NotionInfo = { workspace_id: string pages: DataSourceNotionPage[] + credential_id: string } export type NotionPage = { page_id: string diff --git a/web/service/knowledge/use-create-dataset.ts b/web/service/knowledge/use-create-dataset.ts index 3f3451af2d..4a5243a435 100644 --- a/web/service/knowledge/use-create-dataset.ts +++ b/web/service/knowledge/use-create-dataset.ts @@ -26,6 +26,7 @@ const NAME_SPACE = 'knowledge/create-dataset' export const getNotionInfo = ( notionPages: NotionPage[], + credentialId: string, ) => { const workspacesMap = groupBy(notionPages, 'workspace_id') const workspaces = Object.keys(workspacesMap).map((workspaceId) => { @@ -36,6 +37,7 @@ export const getNotionInfo = ( }) return workspaces.map((workspace) => { return { + credential_id: credentialId, workspace_id: workspace.workspaceId, pages: workspace.pages.map((page) => { const { page_id, page_name, page_icon, type } = page @@ -130,11 +132,12 @@ const getFileIndexingEstimateParamsForNotion = ({ indexingTechnique, processRule, dataset_id, + credential_id, }: GetFileIndexingEstimateParamsOptionNotion): IndexingEstimateParams => { return { info_list: { data_source_type: dataSourceType, - notion_info_list: getNotionInfo(notionPages), + notion_info_list: getNotionInfo(notionPages, credential_id), }, indexing_technique: indexingTechnique, process_rule: processRule,