Class: GraphQL::Relay::Mutation::MutationResolve
- Inherits:
-
Object
- Object
- GraphQL::Relay::Mutation::MutationResolve
- Defined in:
- lib/graphql/relay/mutation.rb
Instance Method Summary collapse
- #call(obj, args, ctx) ⇒ Object
-
#initialize(mutation, resolve, wrap_result:) ⇒ MutationResolve
constructor
A new instance of MutationResolve.
Constructor Details
#initialize(mutation, resolve, wrap_result:) ⇒ MutationResolve
Returns a new instance of MutationResolve.
171 172 173 174 175 |
# File 'lib/graphql/relay/mutation.rb', line 171 def initialize(mutation, resolve, wrap_result:) @mutation = mutation @resolve = resolve @wrap_result = wrap_result end |
Instance Method Details
#call(obj, args, ctx) ⇒ Object
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/graphql/relay/mutation.rb', line 177 def call(obj, args, ctx) mutation_result = @resolve.call(obj, args[:input], ctx) if mutation_result.is_a?(GraphQL::ExecutionError) ctx.add_error(mutation_result) mutation_result = nil end if ctx.schema.lazy?(mutation_result) @mutation.field.prepare_lazy(mutation_result, args, ctx).then { |inner_obj| build_result(inner_obj, args) } else build_result(mutation_result, args) end end |