ScalesCms.Cms.CmsDirectories (scales_cms v0.2.0)

Copy Markdown

The Cms context.

Summary

Functions

Applies sorting to a query based on the given column and order.

Returns an %Ecto.Changeset{} for tracking cms_directory changes.

Counts directories with optional search query. Used for root-level directory listing pagination.

Counts directories for a parent with optional search query. Used for pagination.

Creates a cms_directory.

Deletes a cms_directory.

Fetches directories with optional search query and sorting. Used for root-level directory listing.

Fetches directories for a parent with optional search query and sorting.

Fetches a slice of child directories using offset/limit. Used by CmsListing for combined pagination.

Fetches a slice of root directories using offset/limit. Used by CmsListing for combined pagination.

Fetches paginated directories with optional search query and sorting. Used for root-level directory listing.

Fetches paginated directories for a parent with optional search query and sorting.

Gets a single cms_directory.

Returns the list of all active cms_directories.

Returns the list of all cms_directories.

Returns the list of cms_directories.

Returns the list of cms_directories under its parent id.

Returns the list of cms_directories matching the search query.

Returns the list of cms_directories under its parent id matching the search query.

Functions

apply_sorting(query, sort_by, sort_order)

Applies sorting to a query based on the given column and order.

Parameters

  • query - The Ecto query to sort
  • sort_by - Column to sort by: "created"
  • sort_order - Sort direction: "asc" or "desc" (default: "asc")

Examples

iex> apply_sorting(query, "created", "desc")
#Ecto.Query<...>

change_cms_directory(cms_directory, attrs \\ %{})

Returns an %Ecto.Changeset{} for tracking cms_directory changes.

Examples

iex> change_cms_directory(cms_directory)
%Ecto.Changeset{data: %CmsDirectory{}}

count_directories(query \\ "")

Counts directories with optional search query. Used for root-level directory listing pagination.

Examples

iex> count_directories("")
10

count_directories_for_parent(parent_id, query \\ "")

Counts directories for a parent with optional search query. Used for pagination.

Examples

iex> count_directories_for_parent(123, "")
5

create_cms_directory(attrs \\ %{})

Creates a cms_directory.

Examples

iex> create_cms_directory(%{field: value})
{:ok, %CmsDirectory{}}

iex> create_cms_directory(%{field: bad_value})
{:error, %Ecto.Changeset{}}

delete_cms_directory(cms_directory)

Deletes a cms_directory.

Examples

iex> delete_cms_directory(cms_directory)
{:ok, %CmsDirectory{}}

iex> delete_cms_directory(cms_directory)
{:error, %Ecto.Changeset{}}

fetch_directories(query, opts \\ [])

Fetches directories with optional search query and sorting. Used for root-level directory listing.

Options

  • :sort_by - Column to sort by: "created"
  • :sort_order - Sort direction: "asc" or "desc" (default: "asc")

Examples

iex> fetch_directories("", sort_by: "created", sort_order: "desc")
[%CmsDirectory{}, ...]

fetch_directories_for_parent(parent_id, query, opts \\ [])

Fetches directories for a parent with optional search query and sorting.

Options

  • :sort_by - Column to sort by: "created"
  • :sort_order - Sort direction: "asc" or "desc" (default: "asc")

Examples

iex> fetch_directories_for_parent(123, "", sort_by: "created", sort_order: "asc")
[%CmsDirectory{}, ...]

fetch_directories_for_parent_slice(parent_id, query, offset, limit, opts \\ [])

Fetches a slice of child directories using offset/limit. Used by CmsListing for combined pagination.

fetch_directories_slice(query, offset, limit, opts \\ [])

Fetches a slice of root directories using offset/limit. Used by CmsListing for combined pagination.

fetch_paginated_directories(query, opts \\ [])

Fetches paginated directories with optional search query and sorting. Used for root-level directory listing.

Options

  • :sort_by - Column to sort by: "created"
  • :sort_order - Sort direction: "asc" or "desc" (default: "asc")
  • :page - Page number (1-based)
  • :per_page - Number of items per page

Examples

iex> fetch_paginated_directories("", page: 1, per_page: 20, sort_by: "created", sort_order: "desc")
[%CmsDirectory{}, ...]

fetch_paginated_directories_for_parent(parent_id, query, opts \\ [])

Fetches paginated directories for a parent with optional search query and sorting.

Options

  • :sort_by - Column to sort by: "created"
  • :sort_order - Sort direction: "asc" or "desc" (default: "asc")
  • :page - Page number (1-based)
  • :per_page - Number of items per page

Examples

iex> fetch_paginated_directories_for_parent(123, "", page: 1, per_page: 20, sort_by: "created", sort_order: "asc")
[%CmsDirectory{}, ...]

get_cms_directory!(id)

Gets a single cms_directory.

Raises Ecto.NoResultsError if the Cms directory does not exist.

Examples

iex> get_cms_directory!(123)
%CmsDirectory{}

iex> get_cms_directory!(456)
** (Ecto.NoResultsError)

list_all_active_cms_directories()

Returns the list of all active cms_directories.

Examples

iex> list_all_active_cms_directories()
[%CmsDirectory{}, ...]

list_all_cms_directories()

Returns the list of all cms_directories.

Examples

iex> list_all_cms_directories()
[%CmsDirectory{}, ...]

list_cms_directories()

Returns the list of cms_directories.

Examples

iex> list_cms_directories()
[%CmsDirectory{}, ...]

list_cms_directories_for_parent_id(parent_id)

Returns the list of cms_directories under its parent id.

Examples

iex> list_cms_directories(12)
[%CmsDirectory{}, ...]

search_cms_directories(search)

Returns the list of cms_directories matching the search query.

Examples

iex> search_cms_directories("blog")
[%CmsDirectory{}, ...]

search_cms_directories_for_parent_id(parent_id, search)

Returns the list of cms_directories under its parent id matching the search query.

Examples

iex> search_cms_directories_for_parent_id(12, "blog")
[%CmsDirectory{}, ...]

update_cms_directory(cms_directory, attrs)

Updates a cms_directory.

Examples

iex> update_cms_directory(cms_directory, %{field: new_value})
{:ok, %CmsDirectory{}}

iex> update_cms_directory(cms_directory, %{field: bad_value})
{:error, %Ecto.Changeset{}}