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

Method loadUser

ent/task_query.go:403–431  ·  view source on GitHub ↗
(ctx context.Context, query *UserQuery, nodes []*Task, init func(*Task), assign func(*Task, *User))

Source from the content-addressed store, hash-verified

401}
402
403func (tq *TaskQuery) loadUser(ctx context.Context, query *UserQuery, nodes []*Task, init func(*Task), assign func(*Task, *User)) error {
404 ids := make([]int, 0, len(nodes))
405 nodeids := make(map[int][]*Task)
406 for i := range nodes {
407 fk := nodes[i].UserTasks
408 if _, ok := nodeids[fk]; !ok {
409 ids = append(ids, fk)
410 }
411 nodeids[fk] = append(nodeids[fk], nodes[i])
412 }
413 if len(ids) == 0 {
414 return nil
415 }
416 query.Where(user.IDIn(ids...))
417 neighbors, err := query.All(ctx)
418 if err != nil {
419 return err
420 }
421 for _, n := range neighbors {
422 nodes, ok := nodeids[n.ID]
423 if !ok {
424 return fmt.Errorf(`unexpected foreign-key "user_tasks" returned %v`, n.ID)
425 }
426 for i := range nodes {
427 assign(nodes[i], n)
428 }
429 }
430 return nil
431}
432
433func (tq *TaskQuery) sqlCount(ctx context.Context) (int, error) {
434 _spec := tq.querySpec()

Callers 1

sqlAllMethod · 0.95

Calls 3

IDInFunction · 0.92
WhereMethod · 0.45
AllMethod · 0.45

Tested by

no test coverage detected