ash v0.1.3 Ash.DataLayer behaviour View Source

Link to this section Summary

Link to this section Types

Link to this type

feature()

View Source
feature() ::
  :transact
  | :async_engine
  | {:filter, filter_type()}
  | {:filter_related, Ash.relationship_cardinality()}
  | :upsert
Link to this type

filter_type()

View Source
filter_type() :: :eq | :in

Link to this section Functions

Link to this function

can?(feature, resource)

View Source
can?(feature(), Ash.resource()) :: boolean()
Link to this function

create(resource, changeset)

View Source
create(Ash.resource(), Ecto.Changeset.t()) ::
  {:ok, Ash.record()} | {:error, Ash.error()}
Link to this function

custom_filters(resource)

View Source
Link to this function

filter(query, filter, resource)

View Source
filter(Ash.data_layer_query(), Ash.filter(), Ash.resource()) ::
  {:ok, Ash.data_layer_query()} | {:error, Ash.error()}
Link to this function

limit(query, limit, resource)

View Source
limit(Ash.data_layer_query(), limit :: non_neg_integer(), Ash.resource()) ::
  {:ok, Ash.data_layer_query()} | {:error, Ash.error()}
Link to this function

offset(query, offset, resource)

View Source
offset(Ash.data_layer_query(), offset :: non_neg_integer(), Ash.resource()) ::
  {:ok, Ash.data_layer_query()} | {:error, Ash.error()}
Link to this function

resource_to_query(resource)

View Source
resource_to_query(Ash.resource()) :: Ash.data_layer_query()
Link to this function

run_query(query, central_resource)

View Source
run_query(Ash.data_layer_query(), central_resource :: Ash.resource()) ::
  {:ok, [Ash.record()]} | {:error, Ash.error()}
Link to this function

sort(query, sort, resource)

View Source
sort(Ash.data_layer_query(), Ash.sort(), Ash.resource()) ::
  {:ok, Ash.data_layer_query()} | {:error, Ash.error()}
Link to this function

transact(resource, func)

View Source
Link to this function

update(resource, changeset)

View Source
update(Ash.resource(), Ecto.Changeset.t()) ::
  {:ok, Ash.record()} | {:error, Ash.error()}
Link to this function

upsert(resource, changeset)

View Source
upsert(Ash.resource(), Ecto.Changeset.t()) ::
  {:ok, Ash.record()} | {:error, Ash.error()}

Link to this section Callbacks

Link to this callback

can_query_async?(arg1)

View Source
can_query_async?(Ash.resource()) :: boolean()
Link to this callback

create(arg1, changeset)

View Source
create(Ash.resource(), changeset :: Ecto.Changeset.t()) ::
  {:ok, Ash.resource()} | {:error, Ash.error()}
Link to this callback

custom_filters(arg1)

View Source (optional)
custom_filters(Ash.resource()) :: map()
Link to this callback

destroy(record)

View Source
destroy(record :: Ash.record()) :: :ok | {:error, Ash.error()}
Link to this callback

filter(arg1, arg2, resource)

View Source
filter(Ash.data_layer_query(), Ash.filter(), resource :: Ash.resource()) ::
  {:ok, Ash.data_layer_query()} | {:error, Ash.error()}
Link to this callback

limit(arg1, limit, resource)

View Source
limit(
  Ash.data_layer_query(),
  limit :: non_neg_integer(),
  resource :: Ash.resource()
) :: {:ok, Ash.data_layer_query()} | {:error, Ash.error()}
Link to this callback

offset(arg1, offset, resource)

View Source
offset(
  Ash.data_layer_query(),
  offset :: non_neg_integer(),
  resource :: Ash.resource()
) :: {:ok, Ash.data_layer_query()} | {:error, Ash.error()}
Link to this callback

resource_to_query(arg1)

View Source
resource_to_query(Ash.resource()) :: Ash.data_layer_query()
Link to this callback

run_query(arg1, arg2)

View Source
run_query(Ash.data_layer_query(), Ash.resource()) ::
  {:ok, [Ash.resource()]} | {:error, Ash.error()}
Link to this callback

sort(arg1, arg2, resource)

View Source
sort(Ash.data_layer_query(), Ash.sort(), resource :: Ash.resource()) ::
  {:ok, Ash.data_layer_query()} | {:error, Ash.error()}
Link to this callback

transaction(arg1, function)

View Source (optional)
transaction(Ash.resource(), (() -> term())) ::
  {:ok, term()} | {:error, Ash.error()}
Link to this callback

update(arg1, changeset)

View Source
update(Ash.resource(), changeset :: Ecto.Changeset.t()) ::
  {:ok, Ash.resource()} | {:error, Ash.error()}
Link to this callback

upsert(arg1, changeset)

View Source (optional)
upsert(Ash.resource(), changeset :: Ecto.Changeset.t()) ::
  {:ok, Ash.resource()} | {:error, Ash.error()}