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]):
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:
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
)
@@ -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)
+3 -3
View File
@@ -1,9 +1,9 @@
from ....schemas.dto import BaseModelSdk
from pydantic import ConfigDict
from typing import Dict, Any, List, Optional
from ...responses.pages.properties.RichText import RichText as _RichText
from typing import List, Optional
from ...responses.properties.RichText import RichText as _RichText
class RichText(BaseModelSdk):
model_config = ConfigDict(title="Notion_Orm_Common_RichText")
model_config = ConfigDict(title = "Notion_Orm_Common_RichText")
text: Optional[str]
detailed: List[_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 typing import Optional, Literal
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"]
data_source_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 ....orm.mapping.database import NotionDatabase as _NotionDatabase
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)
+2 -4
View File
@@ -1,9 +1,7 @@
from .Page import Page as _Page
from .Parent import Parent as _Parent
from .Page import Page as _Page
class Schemas:
Page = _Page
Parent = _Parent
Page = _Page
__all__ = ["Schemas"]
@@ -1,9 +1,9 @@
from .....schemas.dto import BaseModelSdk
from ....schemas.dto import BaseModelSdk
from pydantic import ConfigDict
from typing import Dict, Any, Optional
class RichText(BaseModelSdk):
model_config = ConfigDict(title="Notion_Responses_Pages_Properties_RichText")
model_config = ConfigDict(title="Notion_Responses_Properties_RichText")
type: str
text: 'Text'
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 -2
View File
@@ -1,2 +1 @@
from ....schemas.responses.pages.Page import Page
from ....schemas.responses.pages.Parent import Parent
from ....schemas.responses.pages.Page import Page
+1
View File
@@ -0,0 +1 @@
from ....schemas.responses.properties.RichText import RichText