add createUser mutation

This commit is contained in:
João Geonizeli
2021-08-04 23:06:28 -03:00
parent 30b290514f
commit 964ae85d46
12 changed files with 121 additions and 7 deletions

View File

@@ -0,0 +1,9 @@
# frozen_string_literal: true
module Inputs
class UserAttributesInput < Types::BaseInputObject
graphql_name "UserAttributesInput"
argument :first_name, String, required: true
argument :last_name, String, required: true
end
end

View File

@@ -5,5 +5,9 @@ module Mutations
field_class Types::BaseField
input_object_class Types::BaseInputObject
object_class Types::BaseObject
field :errors, [String],
null: true,
description: "Errors encountered during execution of the mutation."
end
end

View File

@@ -0,0 +1,16 @@
# frozen_string_literal: true
module Mutations
class CreateUser < BaseMutation
field :success, Boolean, null: false
argument :user, Inputs::UserAttributesInput, required: true
def resolve(user:)
User.create!({ **user, email: context[:current_auth].email })
{ success: true }
rescue ActiveRecord::RecordInvalid => e
{ success: false, errors: [e.message] }
end
end
end

View File

@@ -1,11 +1,6 @@
# frozen_string_literal: true
module Types
class MutationType < Types::BaseObject
# TODO: remove me
field :test_field, String, null: false,
description: "An example field added by the generator"
def test_field
"Hello World"
end
field :create_user, mutation: Mutations::CreateUser
end
end