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

Method loadShares

ent/file_query.go:916–946  ·  view source on GitHub ↗
(ctx context.Context, query *ShareQuery, nodes []*File, init func(*File), assign func(*File, *Share))

Source from the content-addressed store, hash-verified

914 return nil
915}
916func (fq *FileQuery) loadShares(ctx context.Context, query *ShareQuery, nodes []*File, init func(*File), assign func(*File, *Share)) error {
917 fks := make([]driver.Value, 0, len(nodes))
918 nodeids := make(map[int]*File)
919 for i := range nodes {
920 fks = append(fks, nodes[i].ID)
921 nodeids[nodes[i].ID] = nodes[i]
922 if init != nil {
923 init(nodes[i])
924 }
925 }
926 query.withFKs = true
927 query.Where(predicate.Share(func(s *sql.Selector) {
928 s.Where(sql.InValues(s.C(file.SharesColumn), fks...))
929 }))
930 neighbors, err := query.All(ctx)
931 if err != nil {
932 return err
933 }
934 for _, n := range neighbors {
935 fk := n.file_shares
936 if fk == nil {
937 return fmt.Errorf(`foreign-key "file_shares" is nil for node %v`, n.ID)
938 }
939 node, ok := nodeids[*fk]
940 if !ok {
941 return fmt.Errorf(`unexpected referenced foreign-key "file_shares" returned %v for node %v`, *fk, n.ID)
942 }
943 assign(node, n)
944 }
945 return nil
946}
947func (fq *FileQuery) loadDirectLinks(ctx context.Context, query *DirectLinkQuery, nodes []*File, init func(*File), assign func(*File, *DirectLink)) error {
948 fks := make([]driver.Value, 0, len(nodes))
949 nodeids := make(map[int]*File)

Callers 1

sqlAllMethod · 0.95

Calls 4

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

Tested by

no test coverage detected