MCPcopy
hub / github.com/crowdsecurity/crowdsec / QueryNewDecisionsSinceWithFilters

Method QueryNewDecisionsSinceWithFilters

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

Source from the content-addressed store, hash-verified

199}
200
201func (c *Client) QueryNewDecisionsSinceWithFilters(ctx context.Context, now time.Time, since *time.Time, filter map[string][]string) ([]*ent.Decision, error) {
202 query := c.Ent.Decision.Query().
203 Select(decision.FieldID, decision.FieldUntil, decision.FieldScenario, decision.FieldScope, decision.FieldValue, decision.FieldType, decision.FieldOrigin, decision.FieldUUID).
204 Where(
205 decision.UntilGT(now),
206 )
207
208 errorMsg := "new decisions"
209
210 if since != nil {
211 query = query.Where(decision.CreatedAtGT(*since))
212
213 errorMsg = fmt.Sprintf("%s since %q", errorMsg, since)
214 }
215
216 // Allow a bouncer to ask for non-deduplicated results
217 if v, ok := filter["dedup"]; !ok || v[0] != "false" {
218 query = query.Where(longestDecisionForScopeTypeValue)
219 }
220
221 query, err := applyDecisionFilter(query, filter)
222 if err != nil {
223 c.Log.Warningf("QueryNewDecisionsSinceWithFilters : %s", err)
224
225 return nil, fmt.Errorf("%w: %s", QueryFail, errorMsg)
226 }
227
228 query = query.Order(ent.Asc(decision.FieldID))
229
230 data, err := query.All(ctx)
231 if err != nil {
232 c.Log.Warningf("QueryNewDecisionsSinceWithFilters : %s", err)
233
234 return nil, fmt.Errorf("%w: %s", QueryFail, errorMsg)
235 }
236
237 return data, nil
238}
239
240// ExpireDecisionsWithFilter updates the expiration time to now() for the decisions matching the filter, and returns the updated items
241func (c *Client) ExpireDecisionsWithFilter(ctx context.Context, filter map[string][]string) (int, []*ent.Decision, error) {

Callers

nothing calls this directly

Calls 9

UntilGTFunction · 0.92
CreatedAtGTFunction · 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