MCPcopy Index your code
hub / github.com/crowdsecurity/crowdsec / QueryExpiredDecisionsWithFilters

Method QueryExpiredDecisionsWithFilters

pkg/database/decisions.go:57–83  ·  view source on GitHub ↗
(ctx context.Context, now time.Time, filter map[string][]string)

Source from the content-addressed store, hash-verified

55}
56
57func (c *Client) QueryExpiredDecisionsWithFilters(ctx context.Context, now time.Time, filter map[string][]string) ([]*ent.Decision, error) {
58 query := c.Ent.Decision.Query().
59 Select(decision.FieldID, decision.FieldUntil, decision.FieldScenario, decision.FieldScope, decision.FieldValue, decision.FieldType, decision.FieldOrigin, decision.FieldUUID).
60 Where(
61 decision.UntilLT(now),
62 )
63 // Allow a bouncer to ask for non-deduplicated results
64 if v, ok := filter["dedup"]; !ok || v[0] != "false" {
65 query = query.Where(longestDecisionForScopeTypeValue)
66 }
67
68 query, err := applyDecisionFilter(query, filter)
69 if err != nil {
70 c.Log.Warningf("QueryExpiredDecisionsWithFilters : %s", err)
71 return []*ent.Decision{}, fmt.Errorf("get expired decisions with filters: %w", QueryFail)
72 }
73
74 query = query.Order(ent.Asc(decision.FieldID))
75
76 data, err := query.All(ctx)
77 if err != nil {
78 c.Log.Warningf("QueryExpiredDecisionsWithFilters : %s", err)
79 return []*ent.Decision{}, fmt.Errorf("expired decisions: %w", QueryFail)
80 }
81
82 return data, nil
83}
84
85func (c *Client) QueryDecisionCountByScenario(ctx context.Context) ([]*DecisionsByScenario, error) {
86 query := c.Ent.Decision.Query().Where(

Callers

nothing calls this directly

Calls 8

UntilLTFunction · 0.92
AscFunction · 0.92
applyDecisionFilterFunction · 0.85
WhereMethod · 0.45
SelectMethod · 0.45
QueryMethod · 0.45
OrderMethod · 0.45
AllMethod · 0.45

Tested by

no test coverage detected