Phoenix.Sync.Writer.Transaction (Phoenix.Sync v0.4.3)

View Source

Represents a transaction containing a list of Phoenix.Sync.Writer.Operations that should be applied atomically.

{:ok, operations} <- Transaction.parse_operations(operations, &parse_operation/1)

%Transaction{} = Transaction.new(operations)

Summary

Types

id()

@type id() :: integer()

t()

@type t() :: %Phoenix.Sync.Writer.Transaction{
  operations: [Phoenix.Sync.Writer.Operation.t(), ...],
  txid: nil | id()
}

Functions

empty()

@spec empty() :: t()

Return a new, empty, Transaction struct.

new(operations)

@spec new([Phoenix.Sync.Writer.Operation.t()]) :: {:ok, t()} | {:error, term()}

operation(operation, table, data, changes)

See Phoenix.Sync.Writer.Operation.new/4.

operation!(operation, table, data, changes)

See Phoenix.Sync.Writer.Operation.new!/4.

parse_operations(raw_operations, parse_function)

@spec parse_operations([term()], (term() ->
                              {:ok, Phoenix.Sync.Writer.Operation.t()}
                              | {:error, term()})) ::
  {:ok, [Phoenix.Sync.Writer.Operation.t()]} | {:error, term()}

Helper function to parse a list of encoded Operations.