MCPcopy Create free account
hub / github.com/cloudreve/cloudreve / loadEntities

Method loadEntities

ent/storagepolicy_query.go:596–625  ·  view source on GitHub ↗
(ctx context.Context, query *EntityQuery, nodes []*StoragePolicy, init func(*StoragePolicy), assign func(*StoragePolicy, *Entity))

Source from the content-addressed store, hash-verified

594 return nil
595}
596func (spq *StoragePolicyQuery) loadEntities(ctx context.Context, query *EntityQuery, nodes []*StoragePolicy, init func(*StoragePolicy), assign func(*StoragePolicy, *Entity)) error {
597 fks := make([]driver.Value, 0, len(nodes))
598 nodeids := make(map[int]*StoragePolicy)
599 for i := range nodes {
600 fks = append(fks, nodes[i].ID)
601 nodeids[nodes[i].ID] = nodes[i]
602 if init != nil {
603 init(nodes[i])
604 }
605 }
606 if len(query.ctx.Fields) > 0 {
607 query.ctx.AppendFieldOnce(entity.FieldStoragePolicyEntities)
608 }
609 query.Where(predicate.Entity(func(s *sql.Selector) {
610 s.Where(sql.InValues(s.C(storagepolicy.EntitiesColumn), fks...))
611 }))
612 neighbors, err := query.All(ctx)
613 if err != nil {
614 return err
615 }
616 for _, n := range neighbors {
617 fk := n.StoragePolicyEntities
618 node, ok := nodeids[fk]
619 if !ok {
620 return fmt.Errorf(`unexpected referenced foreign-key "storage_policy_entities" returned %v for node %v`, fk, n.ID)
621 }
622 assign(node, n)
623 }
624 return nil
625}
626func (spq *StoragePolicyQuery) loadNode(ctx context.Context, query *NodeQuery, nodes []*StoragePolicy, init func(*StoragePolicy), assign func(*StoragePolicy, *Node)) error {
627 ids := make([]int, 0, len(nodes))
628 nodeids := make(map[int][]*StoragePolicy)

Callers 1

sqlAllMethod · 0.95

Calls 4

WhereMethod · 0.95
EntityFuncType · 0.92
initFunction · 0.50
AllMethod · 0.45

Tested by

no test coverage detected