From 1ed77c405d23d58efe075aa2251ab909666ff43f Mon Sep 17 00:00:00 2001 From: Conrad Taylor Date: Tue, 21 Dec 2021 20:11:07 -0800 Subject: [PATCH 1/2] Upgrade docs and associated implementation code. --- README.md | 2 +- lib/zero_phoenix_web/graphql/schema.ex | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bcff29c..94d3e05 100644 --- a/README.md +++ b/README.md @@ -434,8 +434,8 @@ Note: This tutorial was updated on macOS 11.6.2. arg :id, non_null(:id) resolve fn %{id: id}, _info -> case ZeroPhoenix.Person|> Repo.get(id) do - nil -> {:error, "Person id #{id} not found"} person -> {:ok, person} + nil -> {:error, "Person id #{id} not found"} end end end diff --git a/lib/zero_phoenix_web/graphql/schema.ex b/lib/zero_phoenix_web/graphql/schema.ex index b131096..17cbbf2 100644 --- a/lib/zero_phoenix_web/graphql/schema.ex +++ b/lib/zero_phoenix_web/graphql/schema.ex @@ -13,8 +13,8 @@ defmodule ZeroPhoenixWeb.Graphql.Schema do resolve(fn %{id: id}, _info -> case Person |> Repo.get(id) do - nil -> {:error, "Person id #{id} not found"} person -> {:ok, person} + nil -> {:error, "Person id #{id} not found"} end end) end From eea75f588664be9698b107732bed6787083066c8 Mon Sep 17 00:00:00 2001 From: Conrad Taylor Date: Tue, 21 Dec 2021 20:51:54 -0800 Subject: [PATCH 2/2] Refactor resolver. --- README.md | 22 +++++++++++++--------- lib/zero_phoenix_web/graphql/schema.ex | 10 ++++++---- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 94d3e05..fe1b99c 100644 --- a/README.md +++ b/README.md @@ -425,21 +425,25 @@ Note: This tutorial was updated on macOS 11.6.2. defmodule ZeroPhoenixWeb.Graphql.Schema do use Absinthe.Schema - import_types ZeroPhoenix.Graphql.Types.Person + import_types(ZeroPhoenixWeb.Graphql.Types.Person) - alias ZeroPhoenix.Repo + alias ZeroPhoenix.Account.Person + alias ZeroPhoenix.Account query do field :person, type: :person do - arg :id, non_null(:id) - resolve fn %{id: id}, _info -> - case ZeroPhoenix.Person|> Repo.get(id) do - person -> {:ok, person} - nil -> {:error, "Person id #{id} not found"} + arg(:id, non_null(:id)) + + resolve(fn %{id: id}, _info -> + case Account.get_person(id) do + %Person{} = person -> + {:ok, person} + + _error -> + {:error, "Person id #{id} not found"} end - end + end) end - end end ``` diff --git a/lib/zero_phoenix_web/graphql/schema.ex b/lib/zero_phoenix_web/graphql/schema.ex index 17cbbf2..7d9d318 100644 --- a/lib/zero_phoenix_web/graphql/schema.ex +++ b/lib/zero_phoenix_web/graphql/schema.ex @@ -3,7 +3,6 @@ defmodule ZeroPhoenixWeb.Graphql.Schema do import_types(ZeroPhoenixWeb.Graphql.Types.Person) - alias ZeroPhoenix.Repo alias ZeroPhoenix.Account.Person alias ZeroPhoenix.Account @@ -12,9 +11,12 @@ defmodule ZeroPhoenixWeb.Graphql.Schema do arg(:id, non_null(:id)) resolve(fn %{id: id}, _info -> - case Person |> Repo.get(id) do - person -> {:ok, person} - nil -> {:error, "Person id #{id} not found"} + case Account.get_person(id) do + %Person{} = person -> + {:ok, person} + + _error -> + {:error, "Person id #{id} not found"} end end) end