defmodule Absinthe.Phase.Document.Context do
@moduledoc "Pass on context and root value to document."
use Absinthe.Phase
alias Absinthe.Blueprint
@spec run(Blueprint.t(), Keyword.t()) :: {:ok, Blueprint.t()}
def run(blueprint, options \\ []) do
context = Map.merge(blueprint.execution.context, options[:context] || %{})
blueprint = put_in(blueprint.execution.context, context)
root_value = Map.merge(blueprint.execution.root_value, options[:root_value] || %{})
blueprint = put_in(blueprint.execution.root_value, root_value)
{:ok, blueprint}
end
end