diff --git a/lib/wabanex_web/resolvers/user.ex b/lib/wabanex_web/resolvers/user.ex index 572c44c..219edb1 100644 --- a/lib/wabanex_web/resolvers/user.ex +++ b/lib/wabanex_web/resolvers/user.ex @@ -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 diff --git a/lib/wabanex_web/schema.ex b/lib/wabanex_web/schema.ex index c86ec20..e4b30ed 100644 --- a/lib/wabanex_web/schema.ex +++ b/lib/wabanex_web/schema.ex @@ -6,4 +6,8 @@ defmodule WabanexWeb.Schema do query do import_fields :root_query end + + mutation do + import_fields :root_mutation + end end diff --git a/lib/wabanex_web/schema/types/root.ex b/lib/wabanex_web/schema/types/root.ex index 3c8a748..f8f2ac2 100644 --- a/lib/wabanex_web/schema/types/root.ex +++ b/lib/wabanex_web/schema/types/root.ex @@ -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 diff --git a/lib/wabanex_web/schema/types/user.ex b/lib/wabanex_web/schema/types/user.ex index e1e0187..a5623d6 100644 --- a/lib/wabanex_web/schema/types/user.ex +++ b/lib/wabanex_web/schema/types/user.ex @@ -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