View Source Carbonite.Multi (Carbonite v0.8.0)

This module provides functions for dealing with audit trails in the context of Ecto.Multi.

Link to this section Summary

Functions

Adds a operation to an Ecto.Multi to fetch the changes of the current transaction.

Sets the current transaction to "override mode" for all tables in the audit log.

Link to this section Types

@type params() :: map()
@type prefix() :: binary()
@type prefix_option() :: {:carbonite_prefix, prefix()}

Link to this section Functions

Link to this function

fetch_changes(multi, opts \\ [])

View Source (since 0.5.0)
@spec fetch_changes(Ecto.Multi.t(), [prefix_option()]) :: Ecto.Multi.t()

Adds a operation to an Ecto.Multi to fetch the changes of the current transaction.

Useful for returning all transaction changes to the caller.

Multi step is called :carbonite_changes.

See Carbonite.fetch_changes/2 for options.

example

Example

Ecto.Multi.new()
|> Carbonite.Multi.insert_transaction(%{meta: %{type: "create_rabbit"}})
|> Ecto.Multi.insert(:rabbit, fn _ -> Rabbit.changeset(%{}) end)
|> Carbonite.Multi.fetch_changes()
Link to this function

insert_transaction(multi, params \\ %{}, opts \\ [])

View Source (since 0.2.0)
@spec insert_transaction(Ecto.Multi.t(), params(), [prefix_option()]) ::
  Ecto.Multi.t()

Adds an insert operation for a Carbonite.Transaction to an Ecto.Multi.

Multi step is called :carbonite_transaction.

See Carbonite.insert_transaction/3 for options.

example

Example

Ecto.Multi.new()
|> Carbonite.Multi.insert_transaction(%{meta: %{type: "create_rabbit"}})
|> Ecto.Multi.insert(:rabbit, fn _ -> Rabbit.changeset(%{}) end)
Link to this function

override_mode(multi, opts \\ [])

View Source (since 0.2.0)
@spec override_mode(Ecto.Multi.t(), [
  {:to, Carbonite.Trigger.mode()} | prefix_option()
]) ::
  Ecto.Multi.t()

Sets the current transaction to "override mode" for all tables in the audit log.

See Carbonite.override_mode/2 for options.