Class: NotionRubyMapping::Search

Inherits:
Object
  • Object
show all
Defined in:
lib/notion_ruby_mapping/controllers/search.rb

Instance Method Summary collapse

Constructor Details

#initialize(ascending: false, database_only: false, page_only: false, query: nil) ⇒ Search

Returns a new instance of Search.



3
4
5
6
7
8
# File 'lib/notion_ruby_mapping/controllers/search.rb', line 3

def initialize(ascending: false, database_only: false, page_only: false, query: nil)
  @ascending = ascending
  @database_only = database_only
  @page_only = page_only
  @query = query
end

Instance Method Details

#exec(dry_run: false) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/notion_ruby_mapping/controllers/search.rb', line 10

def exec(dry_run: false)
  if dry_run
    Base.dry_run_script :post, NotionCache.instance.search_path, payload
  else
    response = NotionCache.instance.search payload
    List.new json: response, type: "search", value: self, query: Query.new
  end
end

#payloadObject



19
20
21
22
23
24
25
26
# File 'lib/notion_ruby_mapping/controllers/search.rb', line 19

def payload
  ans = {}
  ans["sort"] = {"direction" => "ascending", "timestamp" => "last_edited_time"} if @ascending
  ans["filter"] = {"value" => "database", "property" => "object"} if @database_only
  ans["filter"] = {"value" => "page", "property" => "object"} if @page_only
  ans["query"] = @query if @query
  ans
end