mirror of
https://github.com/ash-project/ash.git
synced 2024-09-20 13:33:20 +12:00
improvement: make loading?/2
smarter
This commit is contained in:
parent
db1d527aa2
commit
1ab8d3636e
3 changed files with 11 additions and 1 deletions
|
@ -13,6 +13,7 @@ defmodule Ash.Query.Aggregate do
|
|||
:implementation,
|
||||
:load,
|
||||
:read_action,
|
||||
:agg_name,
|
||||
authorize?: true,
|
||||
uniq?: false,
|
||||
filterable?: true
|
||||
|
@ -195,6 +196,7 @@ defmodule Ash.Query.Aggregate do
|
|||
{:ok,
|
||||
%__MODULE__{
|
||||
name: name,
|
||||
agg_name: name,
|
||||
resource: resource,
|
||||
constraints: constraints,
|
||||
default_value: default || default_value(kind),
|
||||
|
|
|
@ -8,6 +8,7 @@ defmodule Ash.Query.Calculation do
|
|||
:load,
|
||||
:type,
|
||||
:constraints,
|
||||
:calc_name,
|
||||
context: %{},
|
||||
required_loads: [],
|
||||
select: [],
|
||||
|
@ -40,6 +41,7 @@ defmodule Ash.Query.Calculation do
|
|||
module: module,
|
||||
type: type,
|
||||
opts: opts,
|
||||
calc_name: name,
|
||||
constraints: constraints,
|
||||
context: context,
|
||||
required_loads: required_loads,
|
||||
|
|
|
@ -851,7 +851,13 @@ defmodule Ash.Query do
|
|||
|
||||
def loading?(query, item) when is_atom(item) do
|
||||
Keyword.has_key?(query.load || [], item) || Map.has_key?(query.calculations, item) ||
|
||||
Map.has_key?(query.aggregates, item)
|
||||
Map.has_key?(query.aggregates, item) ||
|
||||
Enum.any?(query.calculations, fn {_, %{calc_name: calc_name}} ->
|
||||
calc_name == item
|
||||
end) ||
|
||||
Enum.any?(query.aggregates, fn {_, %{agg_name: agg_name}} ->
|
||||
agg_name == item
|
||||
end)
|
||||
end
|
||||
|
||||
@doc """
|
||||
|
|
Loading…
Reference in a new issue