From 66b2162d105eb1abe8db12380d14aa92e95ec67f Mon Sep 17 00:00:00 2001 From: Zach Daniel Date: Mon, 30 Nov 2020 19:04:59 -0500 Subject: [PATCH] fix: always add global types --- lib/api/api.ex | 12 ++++++------ lib/ash_graphql.ex | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/api/api.ex b/lib/api/api.ex index 8b78a05..a249c00 100644 --- a/lib/api/api.ex +++ b/lib/api/api.ex @@ -39,7 +39,7 @@ defmodule AshGraphql.Api do end @doc false - def type_definitions(api, schema, first?) do + def type_definitions(api, schema) do resource_types = api |> Ash.Api.resources() @@ -51,11 +51,11 @@ defmodule AshGraphql.Api do AshGraphql.Resource.mutation_types(resource, schema) end) - if first? do - [mutation_error(schema), relationship_change(schema), sort_order(schema)] ++ resource_types - else - resource_types - end + resource_types + end + + def global_type_definitions(schema) do + [mutation_error(schema), relationship_change(schema), sort_order(schema)] end defp sort_order(schema) do diff --git a/lib/ash_graphql.ex b/lib/ash_graphql.ex index 2ad7bc9..c51404f 100644 --- a/lib/ash_graphql.ex +++ b/lib/ash_graphql.ex @@ -12,10 +12,8 @@ defmodule AshGraphql do api |> List.wrap() |> Kernel.++(List.wrap(apis)) - |> Enum.map(&{&1, false}) - |> List.update_at(0, fn {api, _} -> {api, true} end) - for {api, first?} do + for api <- apis do defmodule Module.concat(api, AshTypes) do @moduledoc false alias Absinthe.{Blueprint, Phase, Pipeline} @@ -47,14 +45,16 @@ defmodule AshGraphql do Absinthe.Blueprint.add_field(blueprint, "RootMutationType", mutation) end) + type_definitions = + AshGraphql.Api.global_type_definitions(__MODULE__) ++ + AshGraphql.Api.type_definitions(api, __MODULE__) + new_defs = List.update_at(blueprint_with_mutations.schema_definitions, 0, fn schema_def -> %{ schema_def | imports: [{Absinthe.Type.Custom, []} | List.wrap(schema_def.imports)], - type_definitions: - schema_def.type_definitions ++ - AshGraphql.Api.type_definitions(api, __MODULE__, unquote(first?)) + type_definitions: schema_def.type_definitions ++ type_definitions } end)