Class: GraphQL::Relay::Mutation::MutationResolve

Inherits:
Object
  • Object
show all
Defined in:
lib/graphql/relay/mutation.rb

Instance Method Summary collapse

Constructor Details

#initialize(mutation, resolve) ⇒ MutationResolve

Returns a new instance of MutationResolve.



234
235
236
237
238
# File 'lib/graphql/relay/mutation.rb', line 234

def initialize(mutation, resolve)
  @mutation = mutation
  @resolve = resolve
  @wrap_result = mutation.has_generated_return_type?
end

Instance Method Details

#call(obj, args, ctx) ⇒ Object



240
241
242
243
244
245
246
247
248
249
250
251
252
# File 'lib/graphql/relay/mutation.rb', line 240

def call(obj, args, ctx)
  begin
    mutation_result = @resolve.call(obj, args[:input], ctx)
  rescue GraphQL::ExecutionError => err
    mutation_result = err
  end

  if ctx.schema.lazy?(mutation_result)
    mutation_result
  else
    build_result(mutation_result, args, ctx)
  end
end