ash_graphql/lib/api/info.ex
Zach Daniel 9a3136fd5d improvement: remove stacktraces? option
improvement: add error handler
improvement: translatable error messages
docs: handle errors guide
2022-10-12 00:51:01 -04:00

36 lines
1,022 B
Elixir

defmodule AshGraphql.Api.Info do
@moduledoc "Introspection helpers for AshGraphql.Api"
alias Spark.Dsl.Extension
@doc "Wether or not to run authorization on this api"
def authorize?(api) do
Extension.get_opt(api, [:graphql], :authorize?, true)
end
@doc "Wether or not to surface errors to the root of the response"
def root_level_errors?(api) do
Extension.get_opt(api, [:graphql], :root_level_errors?, false, true)
end
@doc "An error handler for errors produced by api"
def error_handler(api) do
Extension.get_opt(
api,
[:graphql],
:error_handler,
{AshGraphql.DefaultErrorHandler, :handle_error, []},
true
)
end
@doc "Wether or not to render raised errors in the graphql response"
def show_raised_errors?(api) do
Extension.get_opt(api, [:graphql], :show_raised_errors?, false, true)
end
@doc "Wether or not to pass debug? down to internal execution"
def debug?(api) do
Extension.get_opt(api, [:graphql], :debug?, false)
end
end