Lockspire.Storage.TokenStore behaviour
(lockspire v1.0.0)
Copy Markdown
Domain-level persistence contract for access and refresh token state.
Summary
Types
Callbacks
@callback fetch_active_access_token(String.t()) :: {:ok, Lockspire.Domain.Token.t() | nil} | {:error, store_error()}
@callback fetch_active_authorization_code(String.t()) :: {:ok, Lockspire.Domain.Token.t() | nil} | {:error, store_error()}
@callback fetch_authorization_code(String.t()) :: {:ok, Lockspire.Domain.Token.t() | nil} | {:error, store_error()}
@callback fetch_lifecycle_token(String.t()) :: {:ok, Lockspire.Domain.Token.t() | nil} | {:error, store_error()}
@callback fetch_lifecycle_token_by_id(integer()) :: {:ok, Lockspire.Domain.Token.t() | nil} | {:error, store_error()}
@callback fetch_refresh_token(String.t()) :: {:ok, Lockspire.Domain.Token.t() | nil} | {:error, store_error()}
@callback list_lifecycle_tokens(keyword()) :: {:ok, [Lockspire.Domain.Token.t()]} | {:error, store_error()}
@callback list_token_family(String.t()) :: {:ok, [Lockspire.Domain.Token.t()]} | {:error, store_error()}
@callback mark_authorization_code_redeemed(String.t(), DateTime.t()) :: {:ok, Lockspire.Domain.Token.t()} | {:error, store_error()}
@callback redeem_authorization_code(String.t(), DateTime.t(), Lockspire.Domain.Token.t()) :: {:ok, %{ authorization_code: Lockspire.Domain.Token.t(), access_token: Lockspire.Domain.Token.t() }} | {:error, store_error()}
@callback revoke_by_sid(String.t()) :: {:ok, non_neg_integer()} | {:error, store_error()}
@callback revoke_lifecycle_token(String.t(), String.t(), DateTime.t()) :: {:ok, Lockspire.Domain.Token.t() | nil} | {:error, store_error()}
@callback revoke_token_family(String.t()) :: {:ok, non_neg_integer()} | {:error, store_error()}
@callback rotate_refresh_token( String.t(), String.t(), DateTime.t(), Lockspire.Domain.Token.t(), Lockspire.Domain.Token.t(), expected_cnf() ) :: {:ok, %{ presented_refresh_token: Lockspire.Domain.Token.t(), refresh_token: Lockspire.Domain.Token.t(), access_token: Lockspire.Domain.Token.t() }} | {:error, store_error()}
@callback store_token(Lockspire.Domain.Token.t()) :: {:ok, Lockspire.Domain.Token.t()} | {:error, store_error()}