Lockspire. Storage. ClientStore behaviour
(lockspire v1.6.1)
Copy Markdown
Domain-level persistence contract for OAuth clients.
Summary
Types
@type store_error() :: term()
Callbacks
@callback fetch_client_by_id(String.t()) :: {:ok, Lockspire.Domain.Client.t() | nil} | {:error, store_error()}
@callback get_client_by_registration_access_token_hash(String.t()) :: {:ok, Lockspire.Domain.Client.t() | nil} | {:error, store_error()}
@callback list_clients(keyword()) :: {:ok, [Lockspire.Domain.Client.t()]} | {:error, store_error()}
@callback register_client(Lockspire.Domain.Client.t()) :: {:ok, Lockspire.Domain.Client.t()} | {:error, store_error()}
@callback replace_client_registration( Lockspire.Domain.Client.t(), Lockspire.Domain.Client.t(), String.t(), map() ) :: {:ok, Lockspire.Domain.Client.t()} | {:error, store_error()}
@callback rotate_client_secret( Lockspire.Domain.Client.t(), String.t(), String.t(), DateTime.t() ) :: {:ok, Lockspire.Domain.Client.t()} | {:error, store_error()}
@callback rotate_registration_access_token(Lockspire.Domain.Client.t(), String.t(), map()) :: {:ok, Lockspire.Domain.Client.t()} | {:error, store_error()}
@callback set_client_active(Lockspire.Domain.Client.t(), boolean(), map()) :: {:ok, Lockspire.Domain.Client.t()} | {:error, store_error()}
@callback update_client(Lockspire.Domain.Client.t(), map()) :: {:ok, Lockspire.Domain.Client.t()} | {:error, store_error()}