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

Method loadEvents

pkg/database/ent/alert_query.go:607–636  ·  view source on GitHub ↗
(ctx context.Context, query *EventQuery, nodes []*Alert, init func(*Alert), assign func(*Alert, *Event))

Source from the content-addressed store, hash-verified

605 return nil
606}
607func (_q *AlertQuery) loadEvents(ctx context.Context, query *EventQuery, nodes []*Alert, init func(*Alert), assign func(*Alert, *Event)) error {
608 fks := make([]driver.Value, 0, len(nodes))
609 nodeids := make(map[int]*Alert)
610 for i := range nodes {
611 fks = append(fks, nodes[i].ID)
612 nodeids[nodes[i].ID] = nodes[i]
613 if init != nil {
614 init(nodes[i])
615 }
616 }
617 if len(query.ctx.Fields) > 0 {
618 query.ctx.AppendFieldOnce(event.FieldAlertEvents)
619 }
620 query.Where(predicate.Event(func(s *sql.Selector) {
621 s.Where(sql.InValues(s.C(alert.EventsColumn), fks...))
622 }))
623 neighbors, err := query.All(ctx)
624 if err != nil {
625 return err
626 }
627 for _, n := range neighbors {
628 fk := n.AlertEvents
629 node, ok := nodeids[fk]
630 if !ok {
631 return fmt.Errorf(`unexpected referenced foreign-key "alert_events" returned %v for node %v`, fk, n.ID)
632 }
633 assign(node, n)
634 }
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)

Callers 1

sqlAllMethod · 0.95

Calls 4

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

Tested by

no test coverage detected