Class: GraphQL::Doctor::Checks::ResolverMethodPresence

Inherits:
Base
  • Object
show all
Defined in:
lib/graphql/doctor/checks/resolver_method_presence.rb

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from GraphQL::Doctor::Checks::Base

Instance Method Details

#call(field) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/graphql/doctor/checks/resolver_method_presence.rb', line 9

def call(field)
  return [] unless field.status == :matched && field.source.confidence != :dynamic
  return [] if field.runtime["hash_key"] || field.runtime["dig_keys"]
  return [] if field.source.options[:hash_key] || field.source.options[:dig]

  owner, name, method = method_target(field)
  return visibility_diagnostic(field, method) if method
  return [] if field.runtime["resolver_source_location"]
  return [] if field.runtime["underlying_method_defined"]
  return [] if experimental_method?(owner)
  return [] if @config["allow_underlying_object"].include?(field.source.owner)

  [missing_diagnostic(field, owner, name)].compact
end