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

Method loadUsers

ent/group_query.go:448–477  ·  view source on GitHub ↗
(ctx context.Context, query *UserQuery, nodes []*Group, init func(*Group), assign func(*Group, *User))

Source from the content-addressed store, hash-verified

446}
447
448func (gq *GroupQuery) loadUsers(ctx context.Context, query *UserQuery, nodes []*Group, init func(*Group), assign func(*Group, *User)) error {
449 fks := make([]driver.Value, 0, len(nodes))
450 nodeids := make(map[int]*Group)
451 for i := range nodes {
452 fks = append(fks, nodes[i].ID)
453 nodeids[nodes[i].ID] = nodes[i]
454 if init != nil {
455 init(nodes[i])
456 }
457 }
458 if len(query.ctx.Fields) > 0 {
459 query.ctx.AppendFieldOnce(user.FieldGroupUsers)
460 }
461 query.Where(predicate.User(func(s *sql.Selector) {
462 s.Where(sql.InValues(s.C(group.UsersColumn), fks...))
463 }))
464 neighbors, err := query.All(ctx)
465 if err != nil {
466 return err
467 }
468 for _, n := range neighbors {
469 fk := n.GroupUsers
470 node, ok := nodeids[fk]
471 if !ok {
472 return fmt.Errorf(`unexpected referenced foreign-key "group_users" returned %v for node %v`, fk, n.ID)
473 }
474 assign(node, n)
475 }
476 return nil
477}
478func (gq *GroupQuery) loadStoragePolicies(ctx context.Context, query *StoragePolicyQuery, nodes []*Group, init func(*Group), assign func(*Group, *StoragePolicy)) error {
479 ids := make([]int, 0, len(nodes))
480 nodeids := make(map[int][]*Group)

Callers 1

sqlAllMethod · 0.95

Calls 4

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

Tested by

no test coverage detected