absinthe_relay_oxo v1.2.1 Absinthe.Relay.Connection.Notation
Macros used to define Connection-related schema entities
See Absinthe.Relay.Connection
for more information.
Summary
Macros
Define a connection type for a given node type.
Examples
A basic connection for a node type, :pet
. This well generate simple
:pet_connection
and :pet_edge
types for you:
connection node_type: :pet
You can provide a custom name for the connection type (just don’t include the
word “connection”). You must still provide the :node_type
. You can create as
many different connections to a node type as you want.
This example will create a connection type, :favorite_pets_connection
, and
an edge type, :favorite_pets_edge
:
connection :favorite_pets, node_type: :pet
You can customize the connection object just like any other object
:
connection :favorite_pets, node_type: :pet do
field :total_age, :float do
resolve fn
_, %{source: conn} ->
sum = conn.edges
|> Enum.map(fn edge -> edge.node.age)
|> Enum.sum
{:ok, sum}
end
end
edge do
# ...
end
end
Just remember that if you use the block form of connection
, you must call
the edge
macro within the block to make sure the edge type is generated.
See the edge
macro below for more information.