Class: HQ::GraphQL::Object

Inherits:
GraphQL::Schema::Object
  • Object
show all
Includes:
ActiveRecordExtensions, Scalars
Defined in:
lib/hq/graphql/object.rb

Direct Known Subclasses

RootMutation, RootQuery

Constant Summary

Constants included from Scalars

Scalars::Object, Scalars::UUID

Class Method Summary collapse

Methods included from ActiveRecordExtensions

included

Class Method Details

.authorize_action(action) ⇒ Object



11
12
13
# File 'lib/hq/graphql/object.rb', line 11

def self.authorize_action(action)
  self.authorized_action = action
end

.authorized?(object, context) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/hq/graphql/object.rb', line 15

def self.authorized?(object, context)
  super && ::HQ::GraphQL.authorized?(authorized_action, object, context)
end

.to_graphqlObject



36
37
38
39
# File 'lib/hq/graphql/object.rb', line 36

def self.to_graphql
  lazy_load!
  super
end

.with_model(model_name, attributes: true, associations: true, auto_nil: true, enums: true) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/hq/graphql/object.rb', line 19

def self.with_model(model_name, attributes: true, associations: true, auto_nil: true, enums: true)
  self.model_name = model_name
  self.auto_load_attributes = attributes
  self.auto_load_associations = associations
  self.auto_load_enums = enums

  lazy_load do
    model_columns.each do |column|
      field_from_column(column, auto_nil: auto_nil)
    end

    model_associations.each do |association|
      field_from_association(association, auto_nil: auto_nil)
    end
  end
end