Tenant-scoped route reservations, history, template moves, and resolution.
Summary
Types
An exact route or a path prefix including that path and all descendants.
Functions
Changes a blog's route templates and every route it owns in one transaction.
Adds a trusted, namespaced blog-template move to a host-owned Multi.
Returns paginated tenant-scoped facts about exact or prefix route reservations.
Promotes a post path to current and preserves the previous canonical path as former.
Releases the draft reservation for a never-published post inside its deletion Multi.
Reserves or replaces a post's draft path inside an owning lifecycle Multi.
Resolves a current route or a former redirect without exposing private content.
Lists a blog or post owner's routes in deterministic lifecycle order.
Types
Functions
@spec change_blog_templates(BlogEngine.Context.t(), Ecto.UUID.t(), map()) :: {:ok, BlogEngine.Schema.Blog.t()} | {:error, BlogEngine.Error.t() | Ecto.Changeset.t()}
Changes a blog's route templates and every route it owns in one transaction.
@spec change_blog_templates_multi( Ecto.Multi.t(), BlogEngine.Context.t(), term(), Ecto.UUID.t(), map() ) :: Ecto.Multi.t()
Adds a trusted, namespaced blog-template move to a host-owned Multi.
@spec list_reservations(BlogEngine.Context.t(), reservation_query(), keyword()) :: {:ok, BlogEngine.Page.t(BlogEngine.Routing.Reservation.t())} | {:error, BlogEngine.Error.t()}
Returns paginated tenant-scoped facts about exact or prefix route reservations.
@spec publish_post_multi( Ecto.Multi.t(), BlogEngine.Context.t(), term(), BlogEngine.Schema.Blog.t() | atom() | (map() -> BlogEngine.Schema.Blog.t()), BlogEngine.Schema.Post.t() | atom() | (map() -> BlogEngine.Schema.Post.t()), BlogEngine.Schema.PostRevision.t() | atom() | (map() -> BlogEngine.Schema.PostRevision.t()) ) :: Ecto.Multi.t()
Promotes a post path to current and preserves the previous canonical path as former.
@spec release_never_published_draft_multi( Ecto.Multi.t(), BlogEngine.Context.t(), term(), BlogEngine.Schema.Post.t() | atom() | (map() -> BlogEngine.Schema.Post.t()) ) :: Ecto.Multi.t()
Releases the draft reservation for a never-published post inside its deletion Multi.
@spec reserve_post_draft_multi( Ecto.Multi.t(), BlogEngine.Context.t(), term(), BlogEngine.Schema.Blog.t() | atom() | (map() -> BlogEngine.Schema.Blog.t()), BlogEngine.Schema.Post.t() | atom() | (map() -> BlogEngine.Schema.Post.t()), BlogEngine.Schema.PostRevision.t() | atom() | (map() -> BlogEngine.Schema.PostRevision.t()) ) :: Ecto.Multi.t()
Reserves or replaces a post's draft path inside an owning lifecycle Multi.
@spec resolve(BlogEngine.Context.t(), String.t()) :: {:ok, map()} | {:redirect, String.t()} | :not_found
Resolves a current route or a former redirect without exposing private content.
@spec routes_for(BlogEngine.Context.t(), Ecto.UUID.t()) :: [ BlogEngine.Schema.Route.t() ]
Lists a blog or post owner's routes in deterministic lifecycle order.