MCPcopy Create free account
hub / github.com/crowdsecurity/crowdsec / loadMetas

Method loadMetas

pkg/database/ent/alert_query.go:637–666  ·  view source on GitHub ↗
(ctx context.Context, query *MetaQuery, nodes []*Alert, init func(*Alert), assign func(*Alert, *Meta))

Source from the content-addressed store, hash-verified

635 return nil
636}
637func (_q *AlertQuery) loadMetas(ctx context.Context, query *MetaQuery, nodes []*Alert, init func(*Alert), assign func(*Alert, *Meta)) error {
638 fks := make([]driver.Value, 0, len(nodes))
639 nodeids := make(map[int]*Alert)
640 for i := range nodes {
641 fks = append(fks, nodes[i].ID)
642 nodeids[nodes[i].ID] = nodes[i]
643 if init != nil {
644 init(nodes[i])
645 }
646 }
647 if len(query.ctx.Fields) > 0 {
648 query.ctx.AppendFieldOnce(meta.FieldAlertMetas)
649 }
650 query.Where(predicate.Meta(func(s *sql.Selector) {
651 s.Where(sql.InValues(s.C(alert.MetasColumn), fks...))
652 }))
653 neighbors, err := query.All(ctx)
654 if err != nil {
655 return err
656 }
657 for _, n := range neighbors {
658 fk := n.AlertMetas
659 node, ok := nodeids[fk]
660 if !ok {
661 return fmt.Errorf(`unexpected referenced foreign-key "alert_metas" returned %v for node %v`, fk, n.ID)
662 }
663 assign(node, n)
664 }
665 return nil
666}
667
668func (_q *AlertQuery) sqlCount(ctx context.Context) (int, error) {
669 _spec := _q.querySpec()

Callers 1

sqlAllMethod · 0.95

Calls 4

WhereMethod · 0.95
MetaFuncType · 0.92
initFunction · 0.70
AllMethod · 0.45

Tested by

no test coverage detected