class Insights::API::Common::GraphQL::AssociationLoader
Attributes
args[R]
association_name[R]
graphql_options[R]
model[R]
Public Class Methods
new(model, association_name, args = {}, graphql_options = {})
click to toggle source
# File lib/insights/api/common/graphql/association_loader.rb, line 8 def initialize(model, association_name, args = {}, graphql_options = {}) @model = model @association_name = association_name @args = args @graphql_options = graphql_options end
Public Instance Methods
cache_key(record)
click to toggle source
# File lib/insights/api/common/graphql/association_loader.rb, line 15 def cache_key(record) record.object_id end
perform(records)
click to toggle source
# File lib/insights/api/common/graphql/association_loader.rb, line 19 def perform(records) records.each { |record| fulfill(record, read_association(record)) } end
Private Instance Methods
read_association(record)
click to toggle source
# File lib/insights/api/common/graphql/association_loader.rb, line 25 def read_association(record) recs = GraphQL::AssociatedRecords.new(record.public_send(association_name)) recs = GraphQL.search_options(recs, args) if graphql_options[:use_pagination_v2] == true PaginatedResponseV2.new( :base_query => recs, :request => nil, :limit => args[:limit], :offset => args[:offset] ).records else PaginatedResponse.new( :base_query => recs, :request => nil, :limit => args[:limit], :offset => args[:offset] ).records end end