View Source PaperTrail.Multi (paper_trail v0.12.0)

Provide functions compatible with Ecto.Multi to insert, update and delete records on the database alongside their changes.

Summary

Types

@type changeset() :: Ecto.Changeset.t()
@type multi() :: Ecto.Multi.t()
@type options() :: PaperTrail.options()
@type queryable() :: PaperTrail.queryable()
@type result() ::
  {:ok, any()}
  | {:error, any()}
  | {:error, Ecto.Multi.name(), any(), %{required(Ecto.Multi.name()) => any()}}
@type struct_or_changeset() :: Ecto.Schema.t() | Ecto.Changeset.t()
@type updates() :: PaperTrail.updates()

Functions

Link to this function

add_prefix(changeset, prefix)

View Source

See PaperTrail.Serializer.add_prefix/2.

See Ecto.Multi.append/2.

Link to this function

commit(multi, options \\ [])

View Source
@spec commit(multi(), options()) :: result()
Link to this function

delete(multi, struct_or_changeset, options \\ [])

View Source
@spec delete(multi(), struct_or_changeset(), options()) :: multi()
Link to this function

error(multi, name, value)

View Source

See Ecto.Multi.error/3.

See PaperTrail.Serializer.get_item_type/1.

See PaperTrail.Serializer.get_model_id/1.

Link to this function

get_sequence_from_model(changeset, options \\ [])

View Source

See PaperTrail.Serializer.get_sequence_from_model/2.

Link to this function

get_sequence_id(table_name, options \\ [])

View Source

See PaperTrail.Serializer.get_sequence_id/2.

Link to this function

insert(multi, changeset, options \\ [])

View Source
@spec insert(multi(), changeset(), options()) :: multi()
Link to this function

make_version_struct(version, model, options)

View Source

See PaperTrail.Serializer.make_version_struct/3.

Link to this function

make_version_structs(version, queryable, changes, options)

View Source

See PaperTrail.Serializer.make_version_structs/4.

See Ecto.Multi.merge/2.

Link to this function

merge(multi, mod, fun, args)

View Source

See Ecto.Multi.merge/4.

See Ecto.Multi.new/0.

See Ecto.Multi.prepend/2.

See Ecto.Multi.run/3.

Link to this function

run(multi, name, mod, fun, args)

View Source

See Ecto.Multi.run/5.

Link to this function

serialize(data, options)

View Source

See PaperTrail.Serializer.serialize/2.

See Ecto.Multi.to_list/1.

Link to this function

update(multi, changeset, options \\ [])

View Source
@spec update(multi(), changeset(), options()) :: multi()
Link to this function

update_all(multi, queryable, updates, options \\ [])

View Source
@spec update_all(multi(), queryable(), updates(), options()) :: multi()