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

Method loadGroups

ent/storagepolicy_query.go:536–565  ·  view source on GitHub ↗
(ctx context.Context, query *GroupQuery, nodes []*StoragePolicy, init func(*StoragePolicy), assign func(*StoragePolicy, *Group))

Source from the content-addressed store, hash-verified

534}
535
536func (spq *StoragePolicyQuery) loadGroups(ctx context.Context, query *GroupQuery, nodes []*StoragePolicy, init func(*StoragePolicy), assign func(*StoragePolicy, *Group)) error {
537 fks := make([]driver.Value, 0, len(nodes))
538 nodeids := make(map[int]*StoragePolicy)
539 for i := range nodes {
540 fks = append(fks, nodes[i].ID)
541 nodeids[nodes[i].ID] = nodes[i]
542 if init != nil {
543 init(nodes[i])
544 }
545 }
546 if len(query.ctx.Fields) > 0 {
547 query.ctx.AppendFieldOnce(group.FieldStoragePolicyID)
548 }
549 query.Where(predicate.Group(func(s *sql.Selector) {
550 s.Where(sql.InValues(s.C(storagepolicy.GroupsColumn), fks...))
551 }))
552 neighbors, err := query.All(ctx)
553 if err != nil {
554 return err
555 }
556 for _, n := range neighbors {
557 fk := n.StoragePolicyID
558 node, ok := nodeids[fk]
559 if !ok {
560 return fmt.Errorf(`unexpected referenced foreign-key "storage_policy_id" returned %v for node %v`, fk, n.ID)
561 }
562 assign(node, n)
563 }
564 return nil
565}
566func (spq *StoragePolicyQuery) loadFiles(ctx context.Context, query *FileQuery, nodes []*StoragePolicy, init func(*StoragePolicy), assign func(*StoragePolicy, *File)) error {
567 fks := make([]driver.Value, 0, len(nodes))
568 nodeids := make(map[int]*StoragePolicy)

Callers 1

sqlAllMethod · 0.95

Calls 4

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

Tested by

no test coverage detected