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

Method QueryDecisionWithFilter

pkg/database/decisions.go:107–138  ·  view source on GitHub ↗
(ctx context.Context, filter map[string][]string)

Source from the content-addressed store, hash-verified

105}
106
107func (c *Client) QueryDecisionWithFilter(ctx context.Context, filter map[string][]string) ([]*ent.Decision, error) {
108 var (
109 err error
110 data []*ent.Decision
111 )
112
113 query := c.Ent.Decision.Query().
114 Where(decision.UntilGTE(time.Now().UTC()))
115
116 query, err = applyDecisionFilter(query, filter)
117 if err != nil {
118 return []*ent.Decision{}, err
119 }
120
121 err = query.Select(
122 decision.FieldID,
123 decision.FieldUntil,
124 decision.FieldScenario,
125 decision.FieldType,
126 decision.FieldStartIP,
127 decision.FieldEndIP,
128 decision.FieldValue,
129 decision.FieldScope,
130 decision.FieldOrigin,
131 ).Scan(ctx, &data)
132 if err != nil {
133 c.Log.Warningf("QueryDecisionWithFilter : %s", err)
134 return []*ent.Decision{}, fmt.Errorf("query decision failed: %w", QueryFail)
135 }
136
137 return data, nil
138}
139
140// ent translation of https://stackoverflow.com/a/28090544
141func longestDecisionForScopeTypeValue(s *sql.Selector) {

Callers 1

GetDecisionMethod · 0.80

Calls 6

UntilGTEFunction · 0.92
applyDecisionFilterFunction · 0.85
WhereMethod · 0.45
QueryMethod · 0.45
ScanMethod · 0.45
SelectMethod · 0.45

Tested by

no test coverage detected