Carbonite.Multi (Carbonite v0.16.0)
View SourceThis module provides functions for dealing with audit trails in the context of Ecto.Multi.
Summary
Functions
Adds an operation Ecto.Multi
that calls Carbonite.delete_transaction_if_empty/2
.
Adds a operation to an Ecto.Multi
to fetch the changes of the current transaction.
Adds an insert operation for a Carbonite.Transaction
to an Ecto.Multi
.
Sets the current transaction to "override mode" for all tables in the audit log.
Types
Functions
@spec delete_transaction_if_empty(Ecto.Multi.t(), [prefix_option()]) :: Ecto.Multi.t()
Adds an operation Ecto.Multi
that calls Carbonite.delete_transaction_if_empty/2
.
Multi step is called :delete_carbonite_transaction
if no :carbonite_prefix
option
is given, otherwise {:delete_carbonite_transaction, <prefix>}
.
See Carbonite.delete_transaction_if_empty/2
for options.
@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
Ecto.Multi.new()
|> Carbonite.Multi.insert_transaction(%{meta: %{type: "create_rabbit"}})
|> Ecto.Multi.insert(:rabbit, fn _ -> Rabbit.changeset(%{}) end)
|> Carbonite.Multi.fetch_changes()
@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
if no :carbonite_prefix
option
is given, otherwise {:carbonite_transaction, <prefix>}
.
See Carbonite.insert_transaction/3
for options.
Example
Ecto.Multi.new()
|> Carbonite.Multi.insert_transaction(%{meta: %{type: "create_rabbit"}})
|> Ecto.Multi.insert(:rabbit, fn _ -> Rabbit.changeset(%{}) end)
@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.