[day-03] add mutation to create user

1. Add input type to receive user details
2. Add resolver to create user
3. Configure mutation in root type
4. Aggregate mutations in schema
This commit is contained in:
Joao P Dubas 2021-06-24 00:25:47 +00:00
parent a54d29ee61
commit 96a3e2e9f0
4 changed files with 20 additions and 0 deletions

View File

@ -2,4 +2,6 @@ defmodule WabanexWeb.Resolvers.User do
alias Wabanex.Users alias Wabanex.Users
def get(%{id: user_id}, _context), do: Users.Get.call(user_id) def get(%{id: user_id}, _context), do: Users.Get.call(user_id)
def create(%{input: params}, _context), do: Users.Create.call(params)
end end

View File

@ -6,4 +6,8 @@ defmodule WabanexWeb.Schema do
query do query do
import_fields :root_query import_fields :root_query
end end
mutation do
import_fields :root_mutation
end
end end

View File

@ -12,4 +12,12 @@ defmodule WabanexWeb.Schema.Types.Root do
resolve &UserResolver.get/2 resolve &UserResolver.get/2
end end
end end
object :root_mutation do
field :create_user, type: :user do
arg :input, non_null(:create_user_input)
resolve &UserResolver.create/2
end
end
end end

View File

@ -9,4 +9,10 @@ defmodule WabanexWeb.Schema.Types.User do
field :name, non_null(:string) field :name, non_null(:string)
field :email, non_null(:string) field :email, non_null(:string)
end end
input_object :create_user_input do
field :name, non_null(:string), description: "User name"
field :email, non_null(:string), description: "User email"
field :password, non_null(:string), description: "User password"
end
end end