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

Method loadShares

ent/user_query.go:845–875  ·  view source on GitHub ↗
(ctx context.Context, query *ShareQuery, nodes []*User, init func(*User), assign func(*User, *Share))

Source from the content-addressed store, hash-verified

843 return nil
844}
845func (uq *UserQuery) loadShares(ctx context.Context, query *ShareQuery, nodes []*User, init func(*User), assign func(*User, *Share)) error {
846 fks := make([]driver.Value, 0, len(nodes))
847 nodeids := make(map[int]*User)
848 for i := range nodes {
849 fks = append(fks, nodes[i].ID)
850 nodeids[nodes[i].ID] = nodes[i]
851 if init != nil {
852 init(nodes[i])
853 }
854 }
855 query.withFKs = true
856 query.Where(predicate.Share(func(s *sql.Selector) {
857 s.Where(sql.InValues(s.C(user.SharesColumn), fks...))
858 }))
859 neighbors, err := query.All(ctx)
860 if err != nil {
861 return err
862 }
863 for _, n := range neighbors {
864 fk := n.user_shares
865 if fk == nil {
866 return fmt.Errorf(`foreign-key "user_shares" is nil for node %v`, n.ID)
867 }
868 node, ok := nodeids[*fk]
869 if !ok {
870 return fmt.Errorf(`unexpected referenced foreign-key "user_shares" returned %v for node %v`, *fk, n.ID)
871 }
872 assign(node, n)
873 }
874 return nil
875}
876func (uq *UserQuery) loadPasskey(ctx context.Context, query *PasskeyQuery, nodes []*User, init func(*User), assign func(*User, *Passkey)) error {
877 fks := make([]driver.Value, 0, len(nodes))
878 nodeids := make(map[int]*User)

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