Skip to content

Commit 55130b1

Browse files
author
Rodolfo Marques
committed
Merge branch 'fix/callout_blocks' into 'develop'
Fixed: Callout block resolution Closes #33 See merge request colorifix/python-notion-api!61
2 parents 888ac9f + 624fc27 commit 55130b1

1 file changed

Lines changed: 33 additions & 3 deletions

File tree

python_notion_api/models/blocks.py

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from __future__ import annotations
22

3-
from typing import List, Optional, Union
3+
from typing import List, Optional
44

55
from pydantic.v1 import AnyUrl, BaseModel
66

@@ -48,7 +48,21 @@ class HeadingBlockValue(BaseModel):
4848

4949
class CalloutBlockValue(BaseModel):
5050
rich_text: List[RichTextObject]
51-
icon: Union[FileObject, EmojiObject]
51+
icon: dict
52+
color: Optional[str]
53+
children: Optional[List[Block]]
54+
55+
56+
class CalloutEmojiBlockValue(CalloutBlockValue):
57+
rich_text: List[RichTextObject]
58+
icon: EmojiObject
59+
color: Optional[str]
60+
children: Optional[List[Block]]
61+
62+
63+
class CalloutFileBlockValue(CalloutBlockValue):
64+
rich_text: List[RichTextObject]
65+
icon: FileObject
5266
color: Optional[str]
5367
children: Optional[List[Block]]
5468

@@ -181,9 +195,25 @@ class Heading3Block(Block):
181195

182196

183197
class CalloutBlock(Block):
198+
callout: CalloutBlockValue
199+
200+
_class_map = {"emoji": "EmojiCalloutBlock", "file": "FileCalloutBlock"}
201+
202+
@property
203+
def _class_key_field(self):
204+
return self.callout.icon["type"]
205+
206+
207+
class EmojiCalloutBlock(CalloutBlock):
184208
_class_key_field = None
185209

186-
callout: CalloutBlockValue
210+
callout: CalloutEmojiBlockValue
211+
212+
213+
class FileCalloutBlock(CalloutBlock):
214+
_class_key_field = None
215+
216+
callout: CalloutFileBlockValue
187217

188218

189219
class QuoteBlock(Block):

0 commit comments

Comments
 (0)