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

Method loadFile

ent/share_query.go:486–517  ·  view source on GitHub ↗
(ctx context.Context, query *FileQuery, nodes []*Share, init func(*Share), assign func(*Share, *File))

Source from the content-addressed store, hash-verified

484 return nil
485}
486func (sq *ShareQuery) loadFile(ctx context.Context, query *FileQuery, nodes []*Share, init func(*Share), assign func(*Share, *File)) error {
487 ids := make([]int, 0, len(nodes))
488 nodeids := make(map[int][]*Share)
489 for i := range nodes {
490 if nodes[i].file_shares == nil {
491 continue
492 }
493 fk := *nodes[i].file_shares
494 if _, ok := nodeids[fk]; !ok {
495 ids = append(ids, fk)
496 }
497 nodeids[fk] = append(nodeids[fk], nodes[i])
498 }
499 if len(ids) == 0 {
500 return nil
501 }
502 query.Where(file.IDIn(ids...))
503 neighbors, err := query.All(ctx)
504 if err != nil {
505 return err
506 }
507 for _, n := range neighbors {
508 nodes, ok := nodeids[n.ID]
509 if !ok {
510 return fmt.Errorf(`unexpected foreign-key "file_shares" returned %v`, n.ID)
511 }
512 for i := range nodes {
513 assign(nodes[i], n)
514 }
515 }
516 return nil
517}
518
519func (sq *ShareQuery) sqlCount(ctx context.Context) (int, error) {
520 _spec := sq.querySpec()

Callers 1

sqlAllMethod · 0.95

Calls 3

IDInFunction · 0.92
WhereMethod · 0.45
AllMethod · 0.45

Tested by

no test coverage detected