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

Copy Markdown

Domain-level persistence contract for OAuth clients.

Summary

Types

store_error()

@type store_error() :: term()

Callbacks

fetch_client_by_id(t)

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

list_clients(keyword)

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

register_client(t)

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

rotate_client_secret(t, t, t)

@callback rotate_client_secret(Lockspire.Domain.Client.t(), String.t(), DateTime.t()) ::
  {:ok, Lockspire.Domain.Client.t()} | {:error, store_error()}

set_client_active(t, boolean, map)

@callback set_client_active(Lockspire.Domain.Client.t(), boolean(), map()) ::
  {:ok, Lockspire.Domain.Client.t()} | {:error, store_error()}

update_client(t, map)

@callback update_client(Lockspire.Domain.Client.t(), map()) ::
  {:ok, Lockspire.Domain.Client.t()} | {:error, store_error()}