module GraphQL::Types::Relay::HasNodesField
Include this module to your root Query
type to get a Relay-style `nodes(id: ID
!): [Node]` field that uses the schema's `object_from_id` hook.
Public Class Methods
field_block()
click to toggle source
# File lib/graphql/types/relay/has_nodes_field.rb, line 23 def field_block Proc.new { argument :ids, "[ID!]!", description: "IDs of the objects." def resolve(obj, args, ctx) args[:ids].map { |id| ctx.schema.object_from_id(id, ctx) } end def resolve_field(obj, args, ctx) resolve(obj, args, ctx) end } end
field_options()
click to toggle source
# File lib/graphql/types/relay/has_nodes_field.rb, line 13 def field_options { name: "nodes", type: [GraphQL::Types::Relay::Node, null: true], null: false, description: "Fetches a list of objects given a list of IDs.", relay_nodes_field: true, } end
included(child_class)
click to toggle source
# File lib/graphql/types/relay/has_nodes_field.rb, line 8 def self.included(child_class) child_class.field(**field_options, &field_block) end
resolve(obj, args, ctx)
click to toggle source
# File lib/graphql/types/relay/has_nodes_field.rb, line 28 def resolve(obj, args, ctx) args[:ids].map { |id| ctx.schema.object_from_id(id, ctx) } end
resolve_field(obj, args, ctx)
click to toggle source
# File lib/graphql/types/relay/has_nodes_field.rb, line 32 def resolve_field(obj, args, ctx) resolve(obj, args, ctx) end