Packages
GrapixStatusApi is self-contained GraphQL API demo module. It implements a `serviceStatus` query and subscription; and pair of mutations to add and trim status messages. Add :grapix_status_api as a dependency in a Grapix API project to use it.
Current section
Files
Jump to
Current section
Files
lib/resolvers.ex
defmodule GrapixStatusApi.Resolvers do
def service_status_query(_, _, _) do
{:ok, GrapixStatusApi.info()}
end
def add_status_message_mutation(_, %{message: message, level: level}, _context) do
{:ok, GrapixStatusApi.post_message(message, level)}
end
def trim_status_messages_mutation(_, args, _context) do
{:ok, GrapixStatusApi.trim_messages(args[:residual] || 0)}
end
def service_status_subscription_config(_args, %{context: context}) do
case context do
%{email: _email} ->
{:ok, topic: :service_status_updates}
_ ->
{:ok, topic: :service_status_updates}
# TODO make this okay only in DEV mode
# _ -> {:error, "unauthorized"}
end
end
def service_status_subscription_resolver(_status, _args, _content) do
{:ok, GrapixStatusApi.info()}
end
def service_status_subscription_topic(_news) do
:service_status_updates
end
end