Lockspire.Storage.InteractionStore behaviour (lockspire v1.0.0)

Copy Markdown

Domain-level persistence contract for authorization interactions.

Summary

Types

store_error()

@type store_error() :: term()

Callbacks

fetch_active_interaction(t)

@callback fetch_active_interaction(String.t()) ::
  {:ok, Lockspire.Domain.Interaction.t() | nil} | {:error, store_error()}

fetch_interaction(t)

@callback fetch_interaction(String.t()) ::
  {:ok, Lockspire.Domain.Interaction.t() | nil} | {:error, store_error()}

list_interactions(keyword)

@callback list_interactions(keyword()) ::
  {:ok, [Lockspire.Domain.Interaction.t()]} | {:error, store_error()}

put_interaction(t)

@callback put_interaction(Lockspire.Domain.Interaction.t()) ::
  {:ok, Lockspire.Domain.Interaction.t()} | {:error, store_error()}

transact(function)

@callback transact((-> term())) :: {:ok, term()} | {:error, store_error()}

transition_interaction(t, list, map)

@callback transition_interaction(
  String.t(),
  [Lockspire.Domain.Interaction.status()],
  map()
) ::
  {:ok, Lockspire.Domain.Interaction.t()} | {:error, store_error()}