fix: always add global types

This commit is contained in:
Zach Daniel 2020-11-30 19:04:59 -05:00
parent 388bc978b6
commit 66b2162d10
2 changed files with 12 additions and 12 deletions

View file

@ -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
def global_type_definitions(schema) do
[mutation_error(schema), relationship_change(schema), sort_order(schema)]
end
defp sort_order(schema) do

View file

@ -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)