Lockspire.Storage.InteractionStore behaviour
(lockspire v1.0.0)
Copy Markdown
Domain-level persistence contract for authorization interactions.
Summary
Types
@type store_error() :: term()
Callbacks
@callback fetch_active_interaction(String.t()) :: {:ok, Lockspire.Domain.Interaction.t() | nil} | {:error, store_error()}
@callback fetch_interaction(String.t()) :: {:ok, Lockspire.Domain.Interaction.t() | nil} | {:error, store_error()}
@callback list_interactions(keyword()) :: {:ok, [Lockspire.Domain.Interaction.t()]} | {:error, store_error()}
@callback put_interaction(Lockspire.Domain.Interaction.t()) :: {:ok, Lockspire.Domain.Interaction.t()} | {:error, store_error()}
@callback transact((-> term())) :: {:ok, term()} | {:error, store_error()}
@callback transition_interaction( String.t(), [Lockspire.Domain.Interaction.status()], map() ) :: {:ok, Lockspire.Domain.Interaction.t()} | {:error, store_error()}