Module: Notion::Api::Endpoints::Pages

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

Instance Method Summary collapse

Instance Method Details

#create_page(options = {}) ⇒ Object

Creates a new page in the specified database. Later iterations of the API will support creating pages outside databases. Note that this iteration of the API will only expose page properties, not page content, as described in the data model.

Parameters:

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

    a customizable set of options

Options Hash (options):

  • :parent (Object)

    Parent of the page, which is always going to be a database in this version of the API.

  • :properties (Object)

    Properties of this page. The schema for the page’s keys and values is described by the properties of the database this page belongs to. key string Name of a property as it appears in Notion, or property ID. value object Object containing a value specific to the property type, e.g. true.



37
38
39
40
# File 'lib/notion/api/endpoints/pages.rb', line 37

def create_page(options = {})
  throw ArgumentError.new('Required arguments :parent.database_id missing') if options.dig(:parent, :database_id).nil?
  post("pages", options)
end

#page(options = {}) ⇒ Object

Retrieves a 📄Page object using the ID specified in the request path. Note that this version of the API only exposes page properties, not page content

Parameters:

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

    a customizable set of options

Options Hash (options):

  • :id (id)

    Page to get info on.

  • :archived (bool)

    Set to true to retrieve an archived page; must be false or omitted to retrieve a page that has not been archived. Defaults to false.



17
18
19
20
# File 'lib/notion/api/endpoints/pages.rb', line 17

def page(options = {})
  throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
  get("pages/#{options[:id]}?archived=#{options[:archived]}")
end

#update_page(options = {}) ⇒ Object

Updates a page by setting the values of any properties specified in the JSON body of the request. Properties that are not set via parameters will remain unchanged.

Note that this iteration of the API will only expose page properties, not page content, as described in the data model.

Parameters:

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

    a customizable set of options

Options Hash (options):

  • :id (id)

    Page to get info on.

  • :properties (Object)

    Properties of this page. The schema for the page’s keys and values is described by the properties of the database this page belongs to. key string Name of a property as it appears in Notion, or property ID. value object Object containing a value specific to the property type, e.g. true.



59
60
61
62
# File 'lib/notion/api/endpoints/pages.rb', line 59

def update_page(options = {})
  throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
  patch("pages/#{options[:id]}", options)
end