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

Method loadStoragePolicies

ent/group_query.go:478–506  ·  view source on GitHub ↗
(ctx context.Context, query *StoragePolicyQuery, nodes []*Group, init func(*Group), assign func(*Group, *StoragePolicy))

Source from the content-addressed store, hash-verified

476 return nil
477}
478func (gq *GroupQuery) loadStoragePolicies(ctx context.Context, query *StoragePolicyQuery, nodes []*Group, init func(*Group), assign func(*Group, *StoragePolicy)) error {
479 ids := make([]int, 0, len(nodes))
480 nodeids := make(map[int][]*Group)
481 for i := range nodes {
482 fk := nodes[i].StoragePolicyID
483 if _, ok := nodeids[fk]; !ok {
484 ids = append(ids, fk)
485 }
486 nodeids[fk] = append(nodeids[fk], nodes[i])
487 }
488 if len(ids) == 0 {
489 return nil
490 }
491 query.Where(storagepolicy.IDIn(ids...))
492 neighbors, err := query.All(ctx)
493 if err != nil {
494 return err
495 }
496 for _, n := range neighbors {
497 nodes, ok := nodeids[n.ID]
498 if !ok {
499 return fmt.Errorf(`unexpected foreign-key "storage_policy_id" returned %v`, n.ID)
500 }
501 for i := range nodes {
502 assign(nodes[i], n)
503 }
504 }
505 return nil
506}
507
508func (gq *GroupQuery) sqlCount(ctx context.Context) (int, error) {
509 _spec := gq.querySpec()

Callers 1

sqlAllMethod · 0.95

Calls 3

IDInFunction · 0.92
WhereMethod · 0.45
AllMethod · 0.45

Tested by

no test coverage detected