(ctx context.Context, filter map[string][]string)
| 105 | } |
| 106 | |
| 107 | func (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 |
| 141 | func longestDecisionForScopeTypeValue(s *sql.Selector) { |
no test coverage detected