Skip to content

Instantly share code, notes, and snippets.

@msroot
Last active April 27, 2020 23:48
Show Gist options
  • Save msroot/b1c6ed4577e449c78dd4d52a10a46962 to your computer and use it in GitHub Desktop.
Save msroot/b1c6ed4577e449c78dd4d52a10a46962 to your computer and use it in GitHub Desktop.
require 'search_object'
require 'search_object/plugin/graphql'
module Resolvers
class BaseSearchResolver
include ::SearchObject.module(:graphql)
def self.create_connection_for(klass)
plural = ActiveSupport::Inflector.pluralize(klass.to_s)
edge = Class.new(GraphQL::Types::Relay::BaseEdge) do
graphql_name "#{plural}EdgeType"
node_type("Types::#{klass}Type".constantize)
end
connection = Class.new(GraphQL::Types::Relay::BaseConnection) do
graphql_name "#{plural}Connection"
field :total_count, Integer, null: false
def total_count
object.nodes.size
end
edge_type(edge)
end
type connection, null: false
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment