class GraphqlRails::Controller::BuildControllerActionResolver

graphql resolver which redirects actions to appropriate controller and controller action

Attributes

route[R]

Public Class Methods

inspect() click to toggle source
# File lib/graphql_rails/controller/build_controller_action_resolver.rb, line 31
def self.inspect
  "ControllerActionResolver(#{controller.name}##{controller_action_name})"
end
new(route:) click to toggle source
# File lib/graphql_rails/controller/build_controller_action_resolver.rb, line 14
def initialize(route:)
  @route = route
end

Public Instance Methods

call() click to toggle source
# File lib/graphql_rails/controller/build_controller_action_resolver.rb, line 18
def call # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
  action = build_action

  Class.new(ControllerActionResolver) do
    type(*action.type_args, **action.type_options)
    description(action.description)
    controller(action.controller)
    controller_action_name(action.name)

    action.arguments.each do |attribute|
      argument(*attribute.input_argument_args, **attribute.input_argument_options)
    end

    def self.inspect
      "ControllerActionResolver(#{controller.name}##{controller_action_name})"
    end
  end
end

Private Instance Methods

assert_action(action) click to toggle source
# File lib/graphql_rails/controller/build_controller_action_resolver.rb, line 47
def assert_action(action)
  action.return_type
end
build_action() click to toggle source
# File lib/graphql_rails/controller/build_controller_action_resolver.rb, line 41
def build_action
  Action.new(route).tap do |action|
    assert_action(action)
  end
end