lib/notion/query.ex
defmodule Notion.Query do
@moduledoc """
Query
"""
alias Notion.{Filter, PropertyFilter, Sort}
defstruct [:filter, :sorts, :start_cursor]
@type t() :: %__MODULE__{
filter: Filter.t() | PropertyFilter.t() | nil,
sorts: [Sort.t()] | nil,
start_cursor: String.t() | nil
}
end
defimpl Jason.Encoder, for: Notion.Query do
def encode(value, opts) do
value
|> Map.from_struct()
|> Enum.reject(fn {_, v} -> is_nil(v) end)
|> Enum.into(%{})
|> Jason.Encode.map(opts)
end
end