Cqrs.Absinthe.Relay (cqrs_tools v0.3.13) View Source

Macros for Absinthe.Relay

Optinal Application Configuration

config :cqrs_tools, :absinthe_relay, repo: Example.Repo

Link to this section Summary

Link to this section Functions

Link to this macro

derive_connection(query_module, return_type, opts)

View Source (macro)

Creates an Absinthe.Relay.Connection query from a Command.


  • :repo - The Ecto.Repo to use for the connection. Defaults to the configured repo in :cqrs_tools, :absinthe_relay.
  • :repo_fun - The function of the :repo to run. Defaults to :all
  • :as - The name to use for the query. Defaults to the query_module name snake_cased.
  • :only - Use only the filters listed
  • :except - Create filters for all except those listed
  • :arg_types - A list of filter names to absinthe types. See example.


defmodule ExampleApi.Types.UserTypes do
  @moduledoc false
  use Cqrs.Absinthe.Relay

  use Absinthe.Schema.Notation
  use Absinthe.Relay.Schema.Notation, :modern

  alias Example.Queries.ListUsers

  enum :user_status do
    value :active
    value :suspended

  object :user do
    field :id, :id
    field :name, :string
    field :email, :string
    field :status, :user_status

  connection(node_type: :user)

  object :user_queries do
    derive_connection ListUsers, :user,
      as: :users,
      repo: Example.Repo,
      arg_types: [status: :user_status]