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

Method loadFiles

ent/storagepolicy_query.go:566–595  ·  view source on GitHub ↗
(ctx context.Context, query *FileQuery, nodes []*StoragePolicy, init func(*StoragePolicy), assign func(*StoragePolicy, *File))

Source from the content-addressed store, hash-verified

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)
569 for i := range nodes {
570 fks = append(fks, nodes[i].ID)
571 nodeids[nodes[i].ID] = nodes[i]
572 if init != nil {
573 init(nodes[i])
574 }
575 }
576 if len(query.ctx.Fields) > 0 {
577 query.ctx.AppendFieldOnce(file.FieldStoragePolicyFiles)
578 }
579 query.Where(predicate.File(func(s *sql.Selector) {
580 s.Where(sql.InValues(s.C(storagepolicy.FilesColumn), fks...))
581 }))
582 neighbors, err := query.All(ctx)
583 if err != nil {
584 return err
585 }
586 for _, n := range neighbors {
587 fk := n.StoragePolicyFiles
588 node, ok := nodeids[fk]
589 if !ok {
590 return fmt.Errorf(`unexpected referenced foreign-key "storage_policy_files" returned %v for node %v`, fk, n.ID)
591 }
592 assign(node, n)
593 }
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)

Callers 1

sqlAllMethod · 0.95

Calls 4

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

Tested by

no test coverage detected