Sha256: f7a771f579b9d7e633217c2215e5171db11090033913d6ed3a4b285cc4cd6391
Contents?: true
Size: 730 Bytes
Versions: 33
Compression:
Stored size: 730 Bytes
Contents
class Graphiti::Sideload::HasMany < Graphiti::Sideload def type :has_many end def load_params(parents, query) query.hash.tap do |hash| hash[:filter] ||= {} hash[:filter].merge!(base_filter(parents)) end end def base_filter(parents) {foreign_key => ids_for_parents(parents).join(",")} end private def child_map(children) children.group_by(&foreign_key) end def children_for(parent, map) pk = parent.send(primary_key) children = map[pk] return children if children keys = map.keys if pk.is_a?(String) && keys[0].is_a?(Integer) pk = pk.to_i elsif pk.is_a?(Integer) && keys[0].is_a?(String) pk = pk.to_s end map[pk] || [] end end
Version data entries
33 entries across 33 versions & 1 rubygems