thesis v0.3.4 Thesis.Store behaviour

Thesis.Store is an Elixir "behaviour" that defines the public function interface necessary for Thesis to use a particular store module.

There are currently four required functions, as described below.

Link to this section Summary

Callbacks

Retrieves all backups for a given slug. Returns the backup

Deletes the given page (identified by its slug). Returns {:ok, page} or {:error, changeset}

Returns a Thesis.Page struct with the given slug (aka request_path)

Returns a list of related Thesis.PageContent structs both for the given Thesis.Page struct and global content areas. This is generally used to populate the page content using the Thesis.View.content/4 function

Retrieves a given backup (identified by its id). Returns the backup

Updates the given page (identified by its slug) with the given map of string keys and Thesis.PageContent structs. Returns {:ok, page} or {:error, changeset}

Link to this section Callbacks

Link to this callback

backups(arg0)
backups(String.t()) :: [Thesis.Backup.t()]

Retrieves all backups for a given slug. Returns the backup.

backups(slug)
Link to this callback

delete(%{})
delete(%{optional(String.t()) => String.t()}) :: {atom(), any()}

Deletes the given page (identified by its slug). Returns {:ok, page} or {:error, changeset}.

delete(%{"slug" => "/asdf"})

Returns a Thesis.Page struct with the given slug (aka request_path).

Link to this callback

page_contents(arg0)
page_contents(Thesis.Page.t()) :: [Thesis.PageContent.t()]

Returns a list of related Thesis.PageContent structs both for the given Thesis.Page struct and global content areas. This is generally used to populate the page content using the Thesis.View.content/4 function.

Link to this callback

restore(arg0)
restore(Integer.t()) :: Thesis.Backup.t()

Retrieves a given backup (identified by its id). Returns the backup.

restore(backup_id)
Link to this callback

update(%{}, map)
update(%{optional(String.t()) => String.t()}, map()) :: {atom(), any()}

Updates the given page (identified by its slug) with the given map of string keys and Thesis.PageContent structs. Returns {:ok, page} or {:error, changeset}.

update(%{"slug" => "/"}, %{"Heading" => "My Heading Content"})