mirror of
				https://github.com/langgenius/dify.git
				synced 2025-11-03 12:23:07 +00:00 
			
		
		
		
	notion fix
This commit is contained in:
		
							parent
							
								
									6954926df9
								
							
						
					
					
						commit
						05e96e56e5
					
				@ -1460,23 +1460,10 @@ class DocumentService:
 | 
			
		||||
                            exist_document[data_source_info["notion_page_id"]] = document.id
 | 
			
		||||
                    for notion_info in notion_info_list:
 | 
			
		||||
                        workspace_id = notion_info.workspace_id
 | 
			
		||||
                        data_source_binding = (
 | 
			
		||||
                            db.session.query(DataSourceOauthBinding)
 | 
			
		||||
                            .where(
 | 
			
		||||
                                db.and_(
 | 
			
		||||
                                    DataSourceOauthBinding.tenant_id == current_user.current_tenant_id,
 | 
			
		||||
                                    DataSourceOauthBinding.provider == "notion",
 | 
			
		||||
                                    DataSourceOauthBinding.disabled == False,
 | 
			
		||||
                                    DataSourceOauthBinding.source_info["workspace_id"] == f'"{workspace_id}"',
 | 
			
		||||
                                )
 | 
			
		||||
                            )
 | 
			
		||||
                            .first()
 | 
			
		||||
                        )
 | 
			
		||||
                        if not data_source_binding:
 | 
			
		||||
                            raise ValueError("Data source binding not found.")
 | 
			
		||||
                        for page in notion_info.pages:
 | 
			
		||||
                            if page.page_id not in exist_page_ids:
 | 
			
		||||
                                data_source_info = {
 | 
			
		||||
                                    "credential_id": notion_info.credential_id,
 | 
			
		||||
                                    "notion_workspace_id": workspace_id,
 | 
			
		||||
                                    "notion_page_id": page.page_id,
 | 
			
		||||
                                    "notion_page_icon": page.page_icon.model_dump() if page.page_icon else None,
 | 
			
		||||
@ -1956,22 +1943,9 @@ class DocumentService:
 | 
			
		||||
                notion_info_list = document_data.data_source.info_list.notion_info_list
 | 
			
		||||
                for notion_info in notion_info_list:
 | 
			
		||||
                    workspace_id = notion_info.workspace_id
 | 
			
		||||
                    data_source_binding = (
 | 
			
		||||
                        db.session.query(DataSourceOauthBinding)
 | 
			
		||||
                        .where(
 | 
			
		||||
                            db.and_(
 | 
			
		||||
                                DataSourceOauthBinding.tenant_id == current_user.current_tenant_id,
 | 
			
		||||
                                DataSourceOauthBinding.provider == "notion",
 | 
			
		||||
                                DataSourceOauthBinding.disabled == False,
 | 
			
		||||
                                DataSourceOauthBinding.source_info["workspace_id"] == f'"{workspace_id}"',
 | 
			
		||||
                            )
 | 
			
		||||
                        )
 | 
			
		||||
                        .first()
 | 
			
		||||
                    )
 | 
			
		||||
                    if not data_source_binding:
 | 
			
		||||
                        raise ValueError("Data source binding not found.")
 | 
			
		||||
                    for page in notion_info.pages:
 | 
			
		||||
                        data_source_info = {
 | 
			
		||||
                            "credential_id": notion_info.credential_id,
 | 
			
		||||
                            "notion_workspace_id": workspace_id,
 | 
			
		||||
                            "notion_page_id": page.page_id,
 | 
			
		||||
                            "notion_page_icon": page.page_icon.model_dump() if page.page_icon else None,  # type: ignore
 | 
			
		||||
 | 
			
		||||
@ -23,6 +23,7 @@ class NotionPage(BaseModel):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class NotionInfo(BaseModel):
 | 
			
		||||
    credential_id: str
 | 
			
		||||
    workspace_id: str
 | 
			
		||||
    pages: list[NotionPage]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -44,20 +44,6 @@ def document_indexing_sync_task(dataset_id: str, document_id: str):
 | 
			
		||||
        page_id = data_source_info["notion_page_id"]
 | 
			
		||||
        page_type = data_source_info["type"]
 | 
			
		||||
        page_edited_time = data_source_info["last_edited_time"]
 | 
			
		||||
        data_source_binding = (
 | 
			
		||||
            db.session.query(DataSourceOauthBinding)
 | 
			
		||||
            .where(
 | 
			
		||||
                db.and_(
 | 
			
		||||
                    DataSourceOauthBinding.tenant_id == document.tenant_id,
 | 
			
		||||
                    DataSourceOauthBinding.provider == "notion",
 | 
			
		||||
                    DataSourceOauthBinding.disabled == False,
 | 
			
		||||
                    DataSourceOauthBinding.source_info["workspace_id"] == f'"{workspace_id}"',
 | 
			
		||||
                )
 | 
			
		||||
            )
 | 
			
		||||
            .first()
 | 
			
		||||
        )
 | 
			
		||||
        if not data_source_binding:
 | 
			
		||||
            raise ValueError("Data source binding not found.")
 | 
			
		||||
 | 
			
		||||
        loader = NotionExtractor(
 | 
			
		||||
            notion_workspace_id=workspace_id,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user