[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
def get(%{id: user_id}, _context), do: Users.Get.call(user_id)
def create(%{input: params}, _context), do: Users.Create.call(params)
end

View File

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

View File

@ -12,4 +12,12 @@ defmodule WabanexWeb.Schema.Types.Root do
resolve &UserResolver.get/2
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

View File

@ -9,4 +9,10 @@ defmodule WabanexWeb.Schema.Types.User do
field :name, non_null(:string)
field :email, non_null(:string)
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