View Source Bonfire.Social.FeedFilters (Bonfire v0.9.11-social-beta.6)

Summary

Functions

Creates a changeset for feed filters.

Creates a changeset and validates the data, returning either validated filters or errors.

Types

t()

@type t() :: %Bonfire.Social.FeedFilters{
  activity_types: Bonfire.Social.FeedFilters.AtomOrStringList.t() | nil,
  creator_circles: Bonfire.Social.FeedFilters.StringList.t() | nil,
  creators: Bonfire.Social.FeedFilters.StringList.t() | nil,
  exclude_activity_types: Bonfire.Social.FeedFilters.AtomOrStringList.t() | nil,
  exclude_creators: Bonfire.Social.FeedFilters.StringList.t() | nil,
  exclude_object_types: Bonfire.Social.FeedFilters.AtomOrStringList.t() | nil,
  exclude_objects: Bonfire.Social.FeedFilters.StringList.t() | nil,
  exclude_subject_circles: Bonfire.Social.FeedFilters.StringList.t() | nil,
  exclude_subject_types: Bonfire.Social.FeedFilters.AtomOrStringList.t() | nil,
  exclude_subjects: Bonfire.Social.FeedFilters.StringList.t() | nil,
  feed_ids: Bonfire.Social.FeedFilters.StringList.t() | nil,
  feed_name:
    (:my
     | :explore
     | :fediverse
     | :local
     | :curated
     | :likes
     | :bookmarks
     | :flags
     | :custom)
    | nil,
  include_flags: (nil | false | true | :mod | :admins) | nil,
  media_types: Bonfire.Social.FeedFilters.AtomOrStringList.t() | nil,
  object_circles: Bonfire.Social.FeedFilters.StringList.t() | nil,
  object_types: Bonfire.Social.FeedFilters.AtomOrStringList.t() | nil,
  objects: Bonfire.Social.FeedFilters.StringList.t() | nil,
  origin: Bonfire.Social.FeedFilters.AtomOrStringList.t() | nil,
  show_objects_only_once: boolean() | nil,
  sort_by:
    (nil | :date_created | :num_replies | :num_boosts | :num_likes) | nil,
  sort_order: (:asc | :desc) | nil,
  subject_circles: Bonfire.Social.FeedFilters.StringList.t() | nil,
  subject_types: Bonfire.Social.FeedFilters.AtomOrStringList.t() | nil,
  subjects: Bonfire.Social.FeedFilters.StringList.t() | nil,
  tags: Bonfire.Social.FeedFilters.StringList.t() | nil,
  time_limit: integer() | nil
}

Functions

changeset(filters \\ %__MODULE__{}, attrs)

Creates a changeset for feed filters.

Examples

iex> #Ecto.Changeset<changes: %{feed_name: :explore, object_types: ["post"]}, errors: [], valid?: true> = changeset(%{feed_name: "explore", object_types: ["post"]})

delete(struct, key)

get(struct, key, default \\ nil)

put(struct, key, val)

supported_filters()

validate(attrs)

Creates a changeset and validates the data, returning either validated filters or errors.

Examples

iex> {:ok, %FeedFilters{feed_name: :explore, object_types: [:post]}} = 
...> validate(%{feed_name: :explore, object_types: "post"})

iex> {:ok, %FeedFilters{feed_name: :explore, object_types: [:post]}} = 
...> validate(%{feed_name: "explore", object_types: ["post"]})

iex> {:ok, %FeedFilters{feed_name: :explore, object_types: [:post]}} = 
...> validate(%{"feed_name"=> "explore", "object_types"=> "post"})

iex> {:ok, %FeedFilters{feed_name: nil, object_types: [:post]}} = 
...> validate(%{feed_name: nil, object_types: :post})

iex> {:ok, %FeedFilters{object_types: [:post]}} = 
...> validate(%{object_types: "post"})

iex> {:error, %Ecto.Changeset{errors: [feed_name: {"is invalid", _}]}} = 
...> validate(%{feed_name: :unknown})