class GraphQL::Schema::Mutation
This base class accepts configuration for a mutation root field, then it can be hooked up to your mutation root object type.
If you want to customize how this class generates types, in your base class, override the various generate_* methods.
See GraphQL::Schema::RelayClassicMutation for an extension of this class with some conventions built-in.
Examples
Example: Creating a comment
# Define the mutation: class Mutations::CreateComment < GraphQL::Schema::Mutation argument :body, String, required: true argument :post_id, ID, required: true field :comment, Types::Comment, null: true field :errors, [String], null: false def resolve(body:, post_id:) post = Post.find(post_id) comment = post.comments.build(body: body, author: context[:current_user]) if comment.save # Successful creation, return the created object with no errors { comment: comment, errors: [], } else # Failed save, return the errors to the client { comment: nil, errors: comment.errors.full_messages } end end end # Hook it up to your mutation: class Types::Mutation < GraphQL::Schema::Object field :create_comment, mutation: Mutations::CreateComment end # Call it from GraphQL: result = MySchema.execute <<-GRAPHQL mutation { createComment(postId: "1", body: "Nice Post!") { errors comment { body author { login } } } } GRAPHQL
Public Class Methods
Source
# File lib/graphql/schema/mutation.rb, line 77 def visible?(context) true end