| @@ -221,15 +221,29 @@ class NotionOAuth(OAuthDataSource): | |||
| return pages | |||
| def notion_page_search(self, access_token: str): | |||
| data = {"filter": {"value": "page", "property": "object"}} | |||
| headers = { | |||
| "Content-Type": "application/json", | |||
| "Authorization": f"Bearer {access_token}", | |||
| "Notion-Version": "2022-06-28", | |||
| } | |||
| response = requests.post(url=self._NOTION_PAGE_SEARCH, json=data, headers=headers) | |||
| response_json = response.json() | |||
| results = response_json.get("results", []) | |||
| results = [] | |||
| next_cursor = None | |||
| has_more = True | |||
| while has_more: | |||
| data = { | |||
| "filter": {"value": "page", "property": "object"}, | |||
| **({"start_cursor": next_cursor} if next_cursor else {}), | |||
| } | |||
| headers = { | |||
| "Content-Type": "application/json", | |||
| "Authorization": f"Bearer {access_token}", | |||
| "Notion-Version": "2022-06-28", | |||
| } | |||
| response = requests.post(url=self._NOTION_PAGE_SEARCH, json=data, headers=headers) | |||
| response_json = response.json() | |||
| results.extend(response_json.get("results", [])) | |||
| has_more = response_json.get("has_more", False) | |||
| next_cursor = response_json.get("next_cursor", None) | |||
| return results | |||
| def notion_block_parent_page_id(self, access_token: str, block_id: str): | |||
| @@ -260,13 +274,26 @@ class NotionOAuth(OAuthDataSource): | |||
| return "workspace" | |||
| def notion_database_search(self, access_token: str): | |||
| data = {"filter": {"value": "database", "property": "object"}} | |||
| headers = { | |||
| "Content-Type": "application/json", | |||
| "Authorization": f"Bearer {access_token}", | |||
| "Notion-Version": "2022-06-28", | |||
| } | |||
| response = requests.post(url=self._NOTION_PAGE_SEARCH, json=data, headers=headers) | |||
| response_json = response.json() | |||
| results = response_json.get("results", []) | |||
| results = [] | |||
| next_cursor = None | |||
| has_more = True | |||
| while has_more: | |||
| data = { | |||
| "filter": {"value": "database", "property": "object"}, | |||
| **({"start_cursor": next_cursor} if next_cursor else {}), | |||
| } | |||
| headers = { | |||
| "Content-Type": "application/json", | |||
| "Authorization": f"Bearer {access_token}", | |||
| "Notion-Version": "2022-06-28", | |||
| } | |||
| response = requests.post(url=self._NOTION_PAGE_SEARCH, json=data, headers=headers) | |||
| response_json = response.json() | |||
| results.extend(response_json.get("results", [])) | |||
| has_more = response_json.get("has_more", False) | |||
| next_cursor = response_json.get("next_cursor", None) | |||
| return results | |||