Ash.Resource.ManualRead behaviour (ash v3.4.68)

View Source

A module to implement manual read actions.

Summary

Types

context()

@type context() :: %{
  optional(:actor) => term(),
  optional(:tenant) => term(),
  optional(:authorize?) => boolean(),
  optional(:domain) => module(),
  optional(any()) => any()
}

extra_info()

@type extra_info() :: %{optional(:full_count) => non_neg_integer()}

Callbacks

load_relationships(query, results, opts, context, lazy?)

(optional)
@callback load_relationships(
  query :: Ash.Query.t(),
  results :: [Ash.Resource.record()],
  opts :: Keyword.t(),
  context :: context(),
  lazy? :: boolean()
) ::
  {:ok, [Ash.Resource.record()]}
  | {:ok, [Ash.Resource.record()], extra_info()}
  | {:error, term()}

read(query, data_layer_query, opts, context)

@callback read(
  query :: Ash.Query.t(),
  data_layer_query :: term(),
  opts :: Keyword.t(),
  context :: context()
) ::
  {:ok, [Ash.Resource.record()]}
  | {:ok, [Ash.Resource.record()], extra_info()}
  | {:error, term()}