Skip to content

Commit 9f083b7

Browse files
authored
feat(discover2): Allow tags to be saved in Saved Queries (#15359)
1 parent 7ad78c3 commit 9f083b7

File tree

6 files changed

+17
-3
lines changed

6 files changed

+17
-3
lines changed

src/sentry/api/serializers/models/discoversavedquery.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def serialize(self, obj, attrs, user, **kwargs):
2323
"orderby",
2424
"limit",
2525
"version",
26+
"tags",
2627
]
2728

2829
data = {

src/sentry/discover/endpoints/serializers.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,9 +160,10 @@ class DiscoverSavedQuerySerializer(serializers.Serializer):
160160
environment = ListField(child=serializers.CharField(), required=False, allow_null=True)
161161
fieldnames = ListField(child=serializers.CharField(), required=False, allow_null=True)
162162
query = serializers.CharField(required=False, allow_null=True)
163+
tags = ListField(child=serializers.CharField(), required=False, allow_null=True)
163164

164165
disallowed_fields = {
165-
1: set(["environment", "fieldnames", "query"]),
166+
1: set(["environment", "fieldnames", "query", "tags"]),
166167
2: set(["groupby", "rollup", "aggregations", "conditions", "limit"]),
167168
}
168169

@@ -198,6 +199,7 @@ def validate(self, data):
198199
"end",
199200
"orderby",
200201
"limit",
202+
"tags",
201203
]
202204

203205
for key in query_keys:

src/sentry/static/sentry/app/stores/discoverSavedQueriesStore.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export type NewQuery = {
1616
start?: string;
1717
end?: string;
1818
environment?: Readonly<string[]>;
19+
tags?: Readonly<string[]>;
1920
};
2021

2122
export type SavedQuery = NewQuery & {

src/sentry/static/sentry/app/views/eventsV2/eventView.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,12 @@ class EventView {
411411
start: saved.start,
412412
end: saved.end,
413413
sorts: fromSorts(saved.orderby),
414-
tags: [],
414+
tags: collectQueryStringByKey(
415+
{
416+
tags: (saved as SavedQuery).tags as string[],
417+
},
418+
'tags'
419+
),
415420
statsPeriod: saved.range,
416421
environment: collectQueryStringByKey(
417422
{
@@ -475,7 +480,7 @@ class EventView {
475480
fields: this.getFields(),
476481
fieldnames: this.getFieldNames(),
477482
orderby,
478-
// TODO: tags?
483+
tags: this.tags,
479484
query: this.query || '',
480485
projects: this.project,
481486
start: this.start,

tests/js/spec/views/eventsV2/eventView.spec.jsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,7 @@ describe('EventView.toNewQuery()', function() {
534534
end: '2019-10-02T00:00:00',
535535
range: '14d',
536536
environment: ['staging'],
537+
tags: ['foo', 'bar'],
537538
};
538539

539540
expect(output).toEqual(expected);
@@ -562,6 +563,7 @@ describe('EventView.toNewQuery()', function() {
562563
end: '2019-10-02T00:00:00',
563564
range: '14d',
564565
environment: ['staging'],
566+
tags: ['foo', 'bar'],
565567
};
566568

567569
expect(output).toEqual(expected);
@@ -590,6 +592,7 @@ describe('EventView.toNewQuery()', function() {
590592
end: '2019-10-02T00:00:00',
591593
range: '14d',
592594
environment: ['staging'],
595+
tags: ['foo', 'bar'],
593596
};
594597

595598
expect(output).toEqual(expected);

tests/snuba/api/endpoints/test_discover_saved_queries.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ def test_post_success(self):
169169
"fieldnames": ["event title", "total", "project"],
170170
"query": "event.type:error browser.name:Firefox",
171171
"range": "24h",
172+
"tags": ["release", "environment"],
172173
"version": 2,
173174
},
174175
)
@@ -179,6 +180,7 @@ def test_post_success(self):
179180
assert data["range"] == "24h"
180181
assert data["environment"] == ["dev"]
181182
assert data["query"] == "event.type:error browser.name:Firefox"
183+
assert data["tags"] == ["release", "environment"]
182184

183185
def test_post_success_no_fieldnames(self):
184186
with self.feature(self.feature_name):

0 commit comments

Comments
 (0)