From c0571cf1091bbad500dc650209b19e78621781bb Mon Sep 17 00:00:00 2001 From: William Mak Date: Tue, 28 Sep 2021 20:11:28 -0400 Subject: [PATCH 1/2] feat(discover): Allow saving queries with topEvents - This adds the ability to save the topEvents property on discover queries --- src/sentry/api/serializers/models/discoversavedquery.py | 1 + src/sentry/discover/endpoints/serializers.py | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sentry/api/serializers/models/discoversavedquery.py b/src/sentry/api/serializers/models/discoversavedquery.py index 188d4c4300fff5..1cc6ef130acafe 100644 --- a/src/sentry/api/serializers/models/discoversavedquery.py +++ b/src/sentry/api/serializers/models/discoversavedquery.py @@ -22,6 +22,7 @@ def serialize(self, obj, attrs, user, **kwargs): "limit", "yAxis", "display", + "topEvents", ] data = { "id": str(obj.id), diff --git a/src/sentry/discover/endpoints/serializers.py b/src/sentry/discover/endpoints/serializers.py index 991a26c0a8ec99..d69099b70d8eb7 100644 --- a/src/sentry/discover/endpoints/serializers.py +++ b/src/sentry/discover/endpoints/serializers.py @@ -163,9 +163,10 @@ class DiscoverSavedQuerySerializer(serializers.Serializer): widths = ListField(child=serializers.CharField(), required=False, allow_null=True) yAxis = ListField(child=serializers.CharField(), required=False, allow_null=True) display = serializers.CharField(required=False, allow_null=True) + topEvents = serializers.CharField(required=False, allow_null=True) disallowed_fields = { - 1: {"environment", "query", "yAxis", "display"}, + 1: {"environment", "query", "yAxis", "display", "topEvents"}, 2: {"groupby", "rollup", "aggregations", "conditions", "limit"}, } @@ -198,6 +199,7 @@ def validate(self, data): "widths", "yAxis", "display", + "topEvents", ] for key in query_keys: From 9cc18f8c9d069084b6d80ee30ab18de256b90d81 Mon Sep 17 00:00:00 2001 From: William Mak Date: Wed, 29 Sep 2021 18:05:38 -0400 Subject: [PATCH 2/2] ref: IntegerField instead --- src/sentry/discover/endpoints/serializers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentry/discover/endpoints/serializers.py b/src/sentry/discover/endpoints/serializers.py index d69099b70d8eb7..f72de793b90b57 100644 --- a/src/sentry/discover/endpoints/serializers.py +++ b/src/sentry/discover/endpoints/serializers.py @@ -163,7 +163,7 @@ class DiscoverSavedQuerySerializer(serializers.Serializer): widths = ListField(child=serializers.CharField(), required=False, allow_null=True) yAxis = ListField(child=serializers.CharField(), required=False, allow_null=True) display = serializers.CharField(required=False, allow_null=True) - topEvents = serializers.CharField(required=False, allow_null=True) + topEvents = serializers.IntegerField(min_value=1, max_value=10, required=False, allow_null=True) disallowed_fields = { 1: {"environment", "query", "yAxis", "display", "topEvents"},