Inicia desenvolvimento de compatibilidade com Page Blocks

---

- Cria schema `BlockList` em `schemas.responses.blocks`;
- Cria request `get` em `client.blocks`;
- Modifica request `get_children` em `client.blocks` para deixar claro que o endpoint busca parentes de páginas e blocos;
- Adiciona field `page_id` em `schemas.responses.pages.Parent`;
- Cria pasta `blocks` em `schemas.responses` para guardar schemas de diversos tipos de objetos;
- Cria schema `Block` em `schemas.responses.blocks`;
- Cria schema `Toggle` em `schemas.responses.blocks`;
- Cria pasta `misc` em `schemas.responses` e move schema `Parent` para lá;
- Cria referência de `misc` e seus schemas em `notion.types.responses`;
- Move pasta `properties` de `schemas.pages` para `schemas`;
- Cria referência de `blocks` e seus schemas em `notion.types.responses`;
- Cria referência de `properties` e seus schemas em `notion.types.responses`;
- Remove pasta `.examples` de `orm.repositories.pages`;

---
This commit is contained in:
2026-01-23 22:33:22 -03:00
parent de4bf3d830
commit 974ed4eb3f
20 changed files with 97 additions and 68 deletions
+16 -3
View File
@@ -8,14 +8,27 @@ class Blocks:
def __init__(self, headers : Dict[str, str]): def __init__(self, headers : Dict[str, str]):
self._headers = headers self._headers = headers
async def get_children(self, page_id : str): async def get(self, block_id : str):
"Busca pelos blocos de uma página" "Busca detalhes de um bloco"
async with httpx.AsyncClient(timeout=httpx.Timeout(30.0)) as client: async with httpx.AsyncClient(timeout=httpx.Timeout(30.0)) as client:
response = await client.get( response = await client.get(
f'https://api.notion.com/v1/blocks/{page_id}/children', f'https://api.notion.com/v1/blocks/{block_id}',
headers = self._headers
)
return response.json()
async def get_children(self, block_id : str):
"Busca pelos blocos de um bloco ou página"
async with httpx.AsyncClient(timeout=httpx.Timeout(30.0)) as client:
response = await client.get(
f'https://api.notion.com/v1/blocks/{block_id}/children',
headers = self._headers headers = self._headers
) )
@@ -1,8 +0,0 @@
# async def main():
# instance = NotionOrm.repo.pages()
# create = await instance.CreatePage()\
# .set_parent("page_id", "2a564c9be67881a185c1c5d9133b9b1c")\
# .set_title("Name", "Teste abc")\
# .set_children("heading_1", "Teste")\
# .call()
# return create
@@ -1,22 +0,0 @@
import sys, os, asyncio
sys.path.append(
os.path.abspath(
os.path.join(
os.path.dirname(__file__), '..', '..', '..', '..', '..', '..', '..'
)
)
)
from src.utils.pprint import pprint
from src.integrations.notion.orm.repositories.pages.GetPage import GetPage
async def main():
instance = GetPage()
search = await instance\
.set_database(name="accounts")\
.set_pageid("0db2806f-b365-4327-919d-afbd1943f2ad")\
.select("Name")
#.call(True)
return search
test = await main()
pprint(test)
@@ -1,21 +0,0 @@
import sys, os, asyncio
sys.path.append(
os.path.abspath(
os.path.join(
os.path.dirname(__file__), '..', '..', '..', '..', '..', '..', '..'
)
)
)
from src.utils.pprint import pprint
from src.integrations.notion.orm.repositories.pages.GetPageProperty import GetPageProperty
async def main():
instance = GetPageProperty()
search = await instance\
.set_pageid("0db2806f-b365-4327-919d-afbd1943f2ad")\
.set_propname("Movements")\
.call()
return search
test = await main()
pprint(test)
+2 -2
View File
@@ -1,7 +1,7 @@
from ....schemas.dto import BaseModelSdk from ....schemas.dto import BaseModelSdk
from pydantic import ConfigDict from pydantic import ConfigDict
from typing import Dict, Any, List, Optional from typing import List, Optional
from ...responses.pages.properties.RichText import RichText as _RichText from ...responses.properties.RichText import RichText as _RichText
class RichText(BaseModelSdk): class RichText(BaseModelSdk):
model_config = ConfigDict(title = "Notion_Orm_Common_RichText") model_config = ConfigDict(title = "Notion_Orm_Common_RichText")
+26
View File
@@ -0,0 +1,26 @@
from ...dto import BaseModelSdk
from pydantic import ConfigDict
from typing import Any, Union, Literal
from datetime import datetime
from ..users.User import User as _User
from ..misc.Parent import Parent as _Parent
from .Toggle import Toggle as _Toggle
class Block(BaseModelSdk):
model_config = ConfigDict(title = "Notion_Responses_Blocks_List")
object: str
id: str
parent: _Parent
created_time: datetime
last_edited_time: datetime
created_by: _User
last_edited_by: _User
has_children: bool
archived: bool
in_trash: bool
type: Literal[
"toggle"
]
block : Union[Any,
_Toggle
]
+12
View File
@@ -0,0 +1,12 @@
from ...dto import BaseModelSdk
from typing import Optional, List, Any, Union
from pydantic import ConfigDict, Field
from .Block import Block as _Block
class BlockList(BaseModelSdk):
model_config = ConfigDict(title = "Notion_Responses_Blocks_BlockList")
results: List[Union[_Block, Any]]
next_cursor: Optional[str] = None
has_more: bool
type: str = "block"
block: dict
+8
View File
@@ -0,0 +1,8 @@
from ...dto import BaseModelSdk
from pydantic import ConfigDict
from ..properties.RichText import RichText as _RichText
class Toggle(BaseModelSdk):
model_config = ConfigDict(title = "Notion_Responses_Blocks_Toggle")
rich_text : _RichText
color : str
+11
View File
@@ -0,0 +1,11 @@
from .Block import Block as _Block
from .BlockList import BlockList as _BlockList
from .Toggle import Toggle as _Toggle
class Schemas:
Block = _Block
BlockList = _BlockList
Toggle = _Toggle
__all__ = ["Schemas"]
@@ -1,9 +1,10 @@
from ....schemas.dto import BaseModelSdk from ...dto import BaseModelSdk
from pydantic import ConfigDict from pydantic import ConfigDict
from typing import Optional, Literal from typing import Optional, Literal
class Parent(BaseModelSdk): class Parent(BaseModelSdk):
model_config = ConfigDict(title="Notion_Responses_Pages_Parent") model_config = ConfigDict(title="Notion_Responses_Misc_Parent")
type: Literal ["page_id", "data_source_id", "database_id"] type: Literal ["page_id", "data_source_id", "database_id"]
data_source_id: Optional[str] = None data_source_id: Optional[str] = None
database_id: Optional[str] = None database_id: Optional[str] = None
page_id: Optional[str] = None
+7
View File
@@ -0,0 +1,7 @@
from .Parent import Parent as _Parent
class Schemas:
Parent = _Parent
__all__ = ["Schemas"]
+1 -1
View File
@@ -4,7 +4,7 @@ from typing import Optional, Any, Dict, Generic, TypeVar, Union
from datetime import datetime from datetime import datetime
from ....orm.mapping.database import NotionDatabase as _NotionDatabase from ....orm.mapping.database import NotionDatabase as _NotionDatabase
from ..users.User import User as _User from ..users.User import User as _User
from .Parent import Parent as _Parent from ..misc.Parent import Parent as _Parent
TDB = TypeVar('TDB', bound = _NotionDatabase) TDB = TypeVar('TDB', bound = _NotionDatabase)
@@ -1,9 +1,7 @@
from .Page import Page as _Page from .Page import Page as _Page
from .Parent import Parent as _Parent
class Schemas: class Schemas:
Page = _Page Page = _Page
Parent = _Parent
__all__ = ["Schemas"] __all__ = ["Schemas"]
@@ -1,9 +1,9 @@
from .....schemas.dto import BaseModelSdk from ....schemas.dto import BaseModelSdk
from pydantic import ConfigDict from pydantic import ConfigDict
from typing import Dict, Any, Optional from typing import Dict, Any, Optional
class RichText(BaseModelSdk): class RichText(BaseModelSdk):
model_config = ConfigDict(title="Notion_Responses_Pages_Properties_RichText") model_config = ConfigDict(title="Notion_Responses_Properties_RichText")
type: str type: str
text: 'Text' text: 'Text'
annotations: 'Annotations' annotations: 'Annotations'
+3
View File
@@ -0,0 +1,3 @@
from ....schemas.responses.blocks.Block import Block
from ....schemas.responses.blocks.BlockList import BlockList
from ....schemas.responses.blocks.Toggle import Toggle
+1
View File
@@ -0,0 +1 @@
from ....schemas.responses.misc.Parent import Parent
-1
View File
@@ -1,2 +1 @@
from ....schemas.responses.pages.Page import Page from ....schemas.responses.pages.Page import Page
from ....schemas.responses.pages.Parent import Parent
+1
View File
@@ -0,0 +1 @@
from ....schemas.responses.properties.RichText import RichText