[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:
@@ -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
|
||||
|
@@ -6,4 +6,8 @@ defmodule WabanexWeb.Schema do
|
||||
query do
|
||||
import_fields :root_query
|
||||
end
|
||||
|
||||
mutation do
|
||||
import_fields :root_mutation
|
||||
end
|
||||
end
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user