Sha256: 128ea26a4b28bdf284be712689d547e355a13ffa394db0c41bd8c3760e436687

Contents?: true

Size: 958 Bytes

Versions: 5

Compression:

Stored size: 958 Bytes

Contents

# frozen_string_literal: true

require 'graphql_rails/controller/request'
require 'graphql_rails/types/argument_type'

module GraphqlRails
  class Controller
    class BuildControllerActionResolver
      # Resolver which includes controller specific methods.
      # Used to simplify resolver build for each controller action
      class ControllerActionResolver < GraphQL::Schema::Resolver
        argument_class(GraphqlRails::Types::ArgumentType)

        def self.controller(controller_class = nil)
          @controller = controller_class if controller_class
          @controller
        end

        def self.controller_action_name(name = nil)
          @controller_action_name = name if name
          @controller_action_name
        end

        def resolve(**inputs)
          request = Request.new(object, inputs, context)
          self.class.controller.new(request).call(self.class.controller_action_name)
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
graphql_rails-3.0.0 lib/graphql_rails/controller/build_controller_action_resolver/controller_action_resolver.rb
graphql_rails-2.4.0 lib/graphql_rails/controller/build_controller_action_resolver/controller_action_resolver.rb
graphql_rails-2.3.0 lib/graphql_rails/controller/build_controller_action_resolver/controller_action_resolver.rb
graphql_rails-2.2.0 lib/graphql_rails/controller/build_controller_action_resolver/controller_action_resolver.rb
graphql_rails-2.1.0 lib/graphql_rails/controller/build_controller_action_resolver/controller_action_resolver.rb