mirror of
https://github.com/ash-project/ash.git
synced 2024-09-20 13:33:20 +12:00
45 lines
1 KiB
Elixir
45 lines
1 KiB
Elixir
defmodule Ash do
|
|
alias Ash.Resource.Relationships.{BelongsTo, HasOne, HasMany, ManyToMany}
|
|
|
|
@type record :: struct
|
|
@type cardinality_one_relationship() :: HasOne.t() | BelongsTo.t()
|
|
@type cardinality_many_relationship() :: HasMany.t() | ManyToMany.t()
|
|
@type relationship :: cardinality_one_relationship() | cardinality_many_relationship()
|
|
@type query :: term
|
|
@type resource :: module
|
|
@type error :: struct
|
|
@type side_load_keyword :: Keyword.t()
|
|
|
|
def resources() do
|
|
Application.get_env(:ash, :resources) || []
|
|
end
|
|
|
|
def relationships(resource) do
|
|
resource.relationships()
|
|
end
|
|
|
|
def actions(resource) do
|
|
resource.actions()
|
|
end
|
|
|
|
def attributes(resource) do
|
|
resource.attributes()
|
|
end
|
|
|
|
def name(resource) do
|
|
resource.name()
|
|
end
|
|
|
|
def type(resource) do
|
|
resource.type()
|
|
end
|
|
|
|
def data_layer(resource) do
|
|
resource.data_layer()
|
|
end
|
|
|
|
def to_resource(%resource{}), do: resource
|
|
def to_resource(resource) when is_atom(resource), do: resource
|
|
|
|
## Datalayer shit TODO move this elsewhere
|
|
end
|