Class: GraphQLActiveRecordResolvers::BaseResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/graphql_activerecord_resolvers/base_resolver.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(klass, ctx) ⇒ BaseResolver

Returns a new instance of BaseResolver.



11
12
13
14
15
16
# File 'lib/graphql_activerecord_resolvers/base_resolver.rb', line 11

def initialize(klass, ctx)
  @klass = klass
  @ctx = ctx
  @schema = ctx.schema
  @query = ctx.query
end

Instance Attribute Details

#ctxObject (readonly)

Returns the value of attribute ctx.



3
4
5
# File 'lib/graphql_activerecord_resolvers/base_resolver.rb', line 3

def ctx
  @ctx
end

#queryObject (readonly)

Returns the value of attribute query.



3
4
5
# File 'lib/graphql_activerecord_resolvers/base_resolver.rb', line 3

def query
  @query
end

#schemaObject (readonly)

Returns the value of attribute schema.



3
4
5
# File 'lib/graphql_activerecord_resolvers/base_resolver.rb', line 3

def schema
  @schema
end

Class Method Details

.resolve_collection(klass) ⇒ Object



5
6
7
8
9
# File 'lib/graphql_activerecord_resolvers/base_resolver.rb', line 5

def self.resolve_collection(klass)
  ->(_obj, _args, ctx) do
    new(klass, ctx).resolve
  end
end

Instance Method Details

#includes_treeObject



26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/graphql_activerecord_resolvers/base_resolver.rb', line 26

def includes_tree
  @includes_tree ||=
    GraphQLAssociation.
      new(
        schema: schema,
        klass: klass,
        field: root_field,
        selections: root_selections,
        root: true,
      ).
      build_includes_tree
end

#resolveObject



18
19
20
21
22
23
24
# File 'lib/graphql_activerecord_resolvers/base_resolver.rb', line 18

def resolve
  if includes_tree
    klass.includes(includes_tree)
  else
    klass.all
  end
end