module Notion::Api::Endpoints::Databases

Public Instance Methods

create_database(options = {}) click to toggle source

Creates a new database in the specified page.

@option options [Object] :parent

Parent of the database, which is always going to be a page.

@option options [Object] :title

Title of this database.

@option options [Object] :properties

Property schema of database.
The keys are the names of properties as they appear in Notion and the values are
property schema objects. Property Schema Object is a metadata that controls
how a database property behaves, e.g. {"checkbox": {}}.
Each database must have exactly one database property schema object of type "title".
# File lib/notion/api/endpoints/databases.rb, line 36
def create_database(options = {})
  throw ArgumentError.new('Required arguments :parent.page_id missing') if options.dig(:parent, :page_id).nil?
  throw ArgumentError.new('Required arguments :title missing') if options.dig(:title).nil?
  throw ArgumentError.new('Required arguments :properties missing') if options.dig(:properties).nil?
  post('databases', options)
end
database(options = {}) click to toggle source

Retrieves a Database object using the ID specified in the request.

Returns a 404 HTTP response if the database doesn't exist, or if the bot doesn't have access to the database. Returns a 429 HTTP response if the request exceeds Notion's Request limits.

@option options [id] :id

Database to get info on.
# File lib/notion/api/endpoints/databases.rb, line 16
def database(options = {})
  throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
  get("databases/#{options[:id]}")
end
database_query(options = {}) { |page| ... } click to toggle source

Gets a paginated array of Page object s contained in the requested database, filtered and ordered according to the filter and sort objects provided in the request.

Filters are similar to the filters provided in the Notion UI. Filters operate on database properties and can be combined. If no filter is provided, all the pages in the database will be returned with pagination.

Sorts are similar to the sorts provided in the Notion UI. Sorts operate on database properties and can be combined. The order of the sorts in the request matter, with earlier sorts taking precedence over later ones.

@option options [id] :id

Database to query.

@option options [Object] :filter

When supplied, limits which pages are returned based on the provided criteria.

@option options [[Object]] :sorts

When supplied, sorts the results based on the provided criteria.

@option options [UUID] :start_cursor

Paginate through collections of data by setting the cursor parameter
to a start_cursor attribute returned by a previous request's next_cursor.
Default value fetches the first "page" of the collection.
See pagination for more detail.
# File lib/notion/api/endpoints/databases.rb, line 69
def database_query(options = {})
  throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
  if block_given?
    Pagination::Cursor.new(self, :database_query, options).each do |page|
      yield page
    end
  else
    post("databases/#{options[:id]}/query", options)
  end
end
databases_list(options = {}) { |page| ... } click to toggle source

Returns a paginated list of Databases objects for the workspace.

@option options [UUID] :start_cursor Paginate through collections of data by setting the cursor parameter to a start_cursor attribute returned by a previous request's next_cursor. Default value fetches the first “page” of the collection. See pagination for more detail.

# File lib/notion/api/endpoints/databases.rb, line 88
def databases_list(options = {})
  if block_given?
    Pagination::Cursor.new(self, :databases_list, options).each do |page|
      yield page
    end
  else
    get('databases', options)
  end
end