<aside> 👉 Links (Block base class)

Page

BookmarkBlock

CodeBlock

EmbedBlock

Heading2Block

LinkToPageBlock

QuoteBlock

ToDoBlock

ToggleHeading3Block

Database

BreadcrumbBlock

ColumnBlock

EquationBlock

Heading3Block

NumberedListItemBlock

SyncedBlock

ToggleBlock

VideoBlock

List

BulletedListItemBlock

ColumnListBlock

FileBlock

ImageBlock

ParagraphBlock

TableOfContentsBlock

ToggleHeading1Block

Block

CalloutBlock

DividerBlock

Heading1Block

LinkPreviewBlock

PdfBlock

TemplateBlock (Deprecated)

ToggleHeading2Block

Notion Ruby Mapping Public API Reference

</aside>

1. Class methods

self.find(id, dry_run: false) → Block, String

Block.find(id) creates a Block object with retrieving block API. The created object has block information generated from the JSON response.

block = Block.find "0250fb6d600142eca4c74efb8794fc6b" # Notion API call
# => #<NotionRubyMapping::Block:...> # retrieved Block object

Block.find(id, dry_run: true) creates a shell script using Retrieve a block API for verification.

block = Block.find "0250fb6d600142eca4c74efb8794fc6b", dry_run: true
# => 
# #!/bin/sh
# curl  '<https://api.notion.com/v1/blocks/0250fb6d600142eca4c74efb8794fc6b>' \\
#   -H 'Notion-Version: 2022-02-22' \\
#   -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \\
#   -H 'Content-Type: application/json'

‣

2. Instance methods

append_block_children(*blocks, dry_run: false) → Array<Block>, String

$\fbox{implemented in Block}$

append_block_children method of an existing block appends some block objects. Some blocks allow child blocks to be set up at the same time. However, due to API limitations, grandchild blocks cannot be created at once. There are many types of blocks, so check the page( Append block children sample) to see how to create blocks.

parent_block = Block.find "065babbba0854c188e964feb56291be2"
parent_block.append_block_children CodeBlock.new("% ls -l", caption: "List files")
# => 
# #<NotionRubyMapping::Block:0x0000000104e7d150

append_block_children(blocks, dry_run: true) creates a shell script using Append block children API for verification.

parent_block.append_block_children CodeBlock.new("% ls -l", caption: "List files"), dry_run: true
# => "#!/bin/sh\\ncurl -X PATCH '<https://api.notion.com/v1/blocks/065babbba0854c188e964feb56291be2/children>' \\\\\\n  -H 'Notion-Version: 2022-02-22' \\\\\\n  -H 'Authorization: Bearer '\\"$NOTION_API_KEY\\"'' \\\\\\n  -H 'Content-Type: application/json' \\\\\\n  --data '{\\"children\\":[{\\"type\\":\\"code\\",\\"object\\":\\"block\\",\\"code\\":{\\"rich_text\\":[{\\"type\\":\\"text\\",\\"text\\":{\\"content\\":\\"% ls -l\\",\\"link\\":null},\\"plain_text\\":\\"% ls -l\\",\\"href\\":null}],\\"caption\\":[{\\"type\\":\\"text\\",\\"text\\":{\\"content\\":\\"List files\\",\\"link\\":null},\\"plain_text\\":\\"List files\\",\\"href\\":null}],\\"language\\":\\"shell\\"}}]}'"

destroy → Block, String

destroy sets the block archived flag to true.

b = Block.new id: "7306e4c4bc5b48d78948e59ec0059afd"
b.destroy

destroy dry_run: true creates a shell script using Delete a block API for verification.

block = Block.id "7306e4c4bc5b48d78948e59ec0059afd"
b.destroy dry_run: true
# => 
# #!/bin/sh
# curl -X DELETE '<https://api.notion.com/v1/blocks/7306e4c4bc5b48d78948e59ec0059afd>' \\
#   -H 'Notion-Version: 2022-02-22' \\
#   -H 'Authorization: Bearer '"$NOTION_API_KEY"''

save(dry_run: false)

$\fbox{implemented in Block}$

save updates the Block object with update block API. The updated object has block information generated from the JSON response.

block = Block.find "899e342cec84415f9ff86225704cbb75" # Notion API call
block.url = "<https://www.apple.com/>"
block.save
# => #<NotionRubyMapping::Block:...> # updated Block object

Block.find(id, dry_run: true) creates a shell script using Retrieve a block API for verification.

block = Block.find "899e342cec84415f9ff86225704cbb75" # Notion API call
block.url = "<https://www.apple.com/>"
block.save dry_run: true
# => 
# curl -X PATCH '<https://api.notion.com/v1/blocks/899e342cec84415f9ff86225704cbb75>' \\
#   -H 'Notion-Version: 2022-02-22' \\
#   -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \\
#   -H 'Content-Type: application/json' \\
#   --data '{"bookmark":{"url":"<https://www.apple.com/>"}}'