class Stardust::GraphQL::Field

Public Class Methods

new(*args, **kwargs, &block) click to toggle source
Calls superclass method
# File lib/stardust/graphql/field.rb, line 9
def initialize(*args, **kwargs, &block)
  super(*args, connection: false, **kwargs, &block)
end

Public Instance Methods

argument(name, type, description = nil, loads: nil, **kwargs) click to toggle source
Calls superclass method
# File lib/stardust/graphql/field.rb, line 31
def argument(name, type, description = nil, loads: nil, **kwargs)
  actual_type = Collector.lookup_type(type)
  if loads
    kwargs[:prepare] = ->(obj, ctx) { loads.find(obj) }
  end

  super(name, actual_type, description, **kwargs)
end
authorize(proc, &block) click to toggle source
# File lib/stardust/graphql/field.rb, line 13
def authorize(proc, &block)
  @authorize = block_given? ? block : proc
end
authorized?(obj, ctx) click to toggle source
Calls superclass method
# File lib/stardust/graphql/field.rb, line 17
def authorized?(obj, ctx)
  if @authorize.respond_to?(:call)
    unless @authorize.(obj, ctx)
      raise ::GraphQL::ExecutionError, "Not authorized"
    end
  else
    super(obj, ctx)
  end
end
resolve(&block) click to toggle source
# File lib/stardust/graphql/field.rb, line 27
def resolve(&block)
  @resolve = block
end