💽

Database and page access sample

A linked view of the test database is placed at the bottom of this page. A link to the method reference is provided at the end of the description.
  1. Preparation (instance → self.instance → NotionCache, create_client → create_client(notion_token, wait: 0.1))
    1. require "notion_ruby_mapping" include NotionRubyMapping token = ENV["NOTION_API_TOKEN"] database_id = "c37a2c66e3aa4a0da44773de3b80c253" # ENV["DATABASE_ID"] NotionCache.instance.create_client token
  1. Retrieve a database (find → self.find(id, dry_run: false))
    1. db = Database.find database_id => #<NotionRubyMapping::Database:0x0000000104f6cb10
  1. Obtain properties (properties → properties → PropertyCache)
    1. title_property = db.properties["Title"] => #<NotionRubyMapping::TitleProperty:0x0000000106f7d288 ... select_property = db.properties["SelectTitle"] => #<NotionRubyMapping::SelectProperty:0x00000001055b3320 ...
  1. Query database without filter (query_database → query_database(query = nil, dry_run: false) → List)
    1. all_pages = db.query_database => #<NotionRubyMapping::List:0x0000000106f9c890 ...
  1. Count all_pages (Enumerable → each { |item| ... } → self each → Enumerator)
    1. all_pages.count => 6
  1. Obtain all page title (Enumerable → each { |item| ... } → self each → Enumerator, title → title → String)
    1. all_pages.map(&:title) => ["", "JKL", "MNO", "DEF", "GHI", "ABC"]
  1. Query database with filter (query_database → query_database(query = nil, dry_run: false) → List, filter_equals → , ascending → ascending(property) )
    1. select3_pages = db.query_database select_property.filter_equals("Select 3").ascending(title_property) => #<NotionRubyMapping::List:0x000000010889ef28 ...
  1. Count select3_pages (Enumerable → each { |item| ... } → self each → Enumerator)
    1. select3_pages.count => 2
  1. Obtain select3_pages title (Enumerable → each { |item| ... } → self each → Enumerator, title → title → String)
    1. select3_pages.map(&:title) => ["ABC", "MNO"]
  1. Obtain the first page (Enumerable → each { |item| ... } → self each → Enumerator)
    1. abc_page = select3_pages.first => #<NotionRubyMapping::Page:0x0000000108494860
  1. Obtain the multi_select_names of the page (properties → properties → PropertyCache, multi_select_names → multi_select_names → Array)
    1. abc_page.properties["MultiSelectTitle"].multi_select_names
 
 
Sample tableSample table
Sample table