defmodule Notion.Search do
def search_pages(options \\ %{}) when is_map(options) do
resp = Notion.V1.Search.post(options)
case resp do
%{"object" => "error"} ->
{:error, resp}
_ ->
{:ok, resp}
end
end
def search_pages(query, sort, filter, options \\ %{})
when is_bitstring(query) and is_map(sort) and is_map(filter) and is_map(options) do
options
|> Enum.into(%{
query: query,
sort: sort,
filter: filter
})
|> Map.reject(fn {_k, v} -> v == nil or v == "" or v == %{} end)
search_pages(options)
end
def search_pages(query, sort, filter, start_cursor, page_size, options \\ %{})
when is_bitstring(query) and is_map(sort) and is_map(filter) and
is_bitstring(start_cursor) and is_integer(page_size) and is_map(options) do
options
|> Enum.into(%{
query: query,
sort: sort,
filter: filter,
start_cursor: start_cursor,
page_size: page_size
})
|> Map.reject(fn {_k, v} -> v == nil or v == "" or v == %{} end)
search_pages(options)
end
end