Z.Documents.HtmlDocuments (Portico/Z v0.1.0)

Context module for ZSchemas.Documents.HtmlDocument

Link to this section Summary

Link to this section Functions

Link to this function

create_html_document(template, opts \\ [])

Specs

create_html_document(template :: map(), opts :: list()) ::
  {:ok, map()} | {:error, Ecto.Changeset.t()}

Create a ZSchemas.Documents.HtmlDocument from a ZSchemas.Documents.HtmlTemplate.

You must pass an associated template. The html field of the document will be automatically calculated, using any merged variables you might pass to override defaults.

You can specify the following opts:

  • attrs - These will be taken as top priority and will override any other values that are automatically set. You could, for example, set [attrs: %{width_in: "12"}] to manually force a specific document width, regardless of template settings.
  • merged_variables - A map of field/value pairs to be merged into the document. See Z.Documents.merge_variables/2 for rules.

Examples

iex> create_html_document(some_template, merged_variables: %{age: "42"})
{:ok, %ZSchemas.Documents.HtmlDocument{}}

iex> create_html_document(some_template, attrs: %{width_in: "12"}, merged_variables: %{age: "77"})
{:ok, %ZSchemas.Documents.HtmlDocument{}}
Link to this function

get_html_document(id)

Specs

get_html_document(id :: String.t()) :: map() | nil

Retrieve a single ZSchemas.Documents.HtmlDocument by id

Examples

iex> Z.Documents.HtmlTemplates.get_html_document("abc-123-def-456")
%ZSchemas.Documents.HtmlDocument{}

iex> Z.Documents.HtmlTemplates.get_html_document("doesntexist")
nil