Current section

Files

Jump to
eventstore lib event_store snapshots snapshotter.ex
Raw

lib/event_store/snapshots/snapshotter.ex

defmodule EventStore.Snapshots.Snapshotter do
@moduledoc false
alias EventStore.Snapshots.SnapshotData
alias EventStore.Storage.Snapshot
@doc """
Read a snapshot, if available, for a given source.
"""
def read_snapshot(conn, source_uuid, serializer, opts \\ []) do
case Snapshot.read_snapshot(conn, source_uuid, opts) do
{:ok, snapshot} ->
{:ok, SnapshotData.deserialize(snapshot, serializer)}
reply ->
reply
end
end
@doc """
Record a snapshot containing data and metadata for a given source.
Returns `:ok` on success.
"""
def record_snapshot(conn, %SnapshotData{} = snapshot, serializer, opts \\ []) do
snapshot_data = SnapshotData.serialize(snapshot, serializer)
Snapshot.record_snapshot(conn, snapshot_data, opts)
end
@doc """
Delete a previously recorded snapshot for a given source.
Returns `:ok` on success.
"""
def delete_snapshot(conn, source_uuid, opts \\ []),
do: Snapshot.delete_snapshot(conn, source_uuid, opts)
end