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

Method loadFiles

ent/user_query.go:785–814  ·  view source on GitHub ↗
(ctx context.Context, query *FileQuery, nodes []*User, init func(*User), assign func(*User, *File))

Source from the content-addressed store, hash-verified

783 return nil
784}
785func (uq *UserQuery) loadFiles(ctx context.Context, query *FileQuery, nodes []*User, init func(*User), assign func(*User, *File)) error {
786 fks := make([]driver.Value, 0, len(nodes))
787 nodeids := make(map[int]*User)
788 for i := range nodes {
789 fks = append(fks, nodes[i].ID)
790 nodeids[nodes[i].ID] = nodes[i]
791 if init != nil {
792 init(nodes[i])
793 }
794 }
795 if len(query.ctx.Fields) > 0 {
796 query.ctx.AppendFieldOnce(file.FieldOwnerID)
797 }
798 query.Where(predicate.File(func(s *sql.Selector) {
799 s.Where(sql.InValues(s.C(user.FilesColumn), fks...))
800 }))
801 neighbors, err := query.All(ctx)
802 if err != nil {
803 return err
804 }
805 for _, n := range neighbors {
806 fk := n.OwnerID
807 node, ok := nodeids[fk]
808 if !ok {
809 return fmt.Errorf(`unexpected referenced foreign-key "owner_id" returned %v for node %v`, fk, n.ID)
810 }
811 assign(node, n)
812 }
813 return nil
814}
815func (uq *UserQuery) loadDavAccounts(ctx context.Context, query *DavAccountQuery, nodes []*User, init func(*User), assign func(*User, *DavAccount)) error {
816 fks := make([]driver.Value, 0, len(nodes))
817 nodeids := make(map[int]*User)

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