Module: Notion::Api::Endpoints::Databases

Included in:
Notion::Api::Endpoints
Defined in:
lib/notion/api/endpoints/databases.rb

Instance Method Summary collapse

Instance Method Details

#database(options = {}) ⇒ Object

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.

Parameters:

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :id (id)

    Database to get info on.



16
17
18
19
# 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 = {}) ⇒ Object

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.

Parameters:

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :id (id)

    Database to query.

  • :filter (Object)

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

  • :sorts ([Object])

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

  • :start_cursor (UUID)

    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.



47
48
49
50
51
52
53
54
55
56
# File 'lib/notion/api/endpoints/databases.rb', line 47

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]}", options)
  end
end