Browse Source

ref(api) Remove the unused group parameter from events APIs (#20811)

This parameter was formerly in use by an earlier version of incidents.
This is no longer the case as incidents has evolved to the point where
it doesn't track specific groups anymore.
Mark Story 4 years ago
parent
commit
1ca4a0cd08

+ 0 - 22
src/sentry/api/bases/organization_events.py

@@ -4,7 +4,6 @@ from contextlib import contextmanager
 import sentry_sdk
 import six
 from django.utils.http import urlquote
-from rest_framework.exceptions import PermissionDenied
 from rest_framework.exceptions import ParseError
 
 
@@ -19,10 +18,8 @@ from sentry.api.event_search import (
     get_function_alias,
 )
 from sentry.api.serializers.snuba import SnubaTSResultSerializer
-from sentry.models.project import Project
 from sentry.models.group import Group
 from sentry.snuba import discover
-from sentry.utils.compat import map
 from sentry.utils.dates import get_rollup_from_request
 from sentry.utils.http import absolute_uri
 from sentry.utils import snuba
@@ -61,25 +58,6 @@ class OrganizationEventsEndpointBase(OrganizationEndpoint):
 
     def get_snuba_query_args_legacy(self, request, organization):
         params = self.get_filter_params(request, organization)
-
-        group_ids = request.GET.getlist("group")
-        if group_ids:
-            # TODO(mark) This parameter should be removed in the long term.
-            # Instead of using this parameter clients should use `issue.id`
-            # in their query string.
-            try:
-                group_ids = set(map(int, [_f for _f in group_ids if _f]))
-            except ValueError:
-                raise ParseError(detail="Invalid group parameter. Values must be numbers")
-
-            projects = Project.objects.filter(
-                organization=organization, group__id__in=group_ids
-            ).distinct()
-            if any(p for p in projects if not request.access.has_project_access(p)):
-                raise PermissionDenied
-            params["group_ids"] = list(group_ids)
-            params["project_id"] = list(set([p.id for p in projects] + params["project_id"]))
-
         query = request.GET.get("query")
         try:
             _filter = get_filter(query, params)

+ 0 - 63
tests/snuba/api/endpoints/test_organization_events.py

@@ -570,69 +570,6 @@ class OrganizationEventsEndpointTest(APITestCase, SnubaTestCase):
         assert response.status_code == 200, response.content
         assert len(response.data) == 0
 
-    def test_group_filtering(self):
-        user = self.create_user()
-        org = self.create_organization(owner=user)
-        self.login_as(user=user)
-
-        team = self.create_team(organization=org, members=[user])
-
-        self.login_as(user=user)
-
-        project = self.create_project(organization=org, teams=[team])
-        events = []
-        for event_id, fingerprint in [
-            ("a" * 32, "put-me-in-group1"),
-            ("b" * 32, "put-me-in-group1"),
-            ("c" * 32, "put-me-in-group2"),
-            ("d" * 32, "put-me-in-group3"),
-        ]:
-            events.append(
-                self.store_event(
-                    data={
-                        "event_id": event_id,
-                        "timestamp": self.min_ago,
-                        "fingerprint": [fingerprint],
-                    },
-                    project_id=project.id,
-                )
-            )
-
-        event_1, event_2, event_3, event_4 = events
-        group_1, group_2, group_3 = event_1.group, event_3.group, event_4.group
-
-        base_url = reverse(
-            "sentry-api-0-organization-events", kwargs={"organization_slug": org.slug}
-        )
-
-        response = self.client.get(base_url, format="json", data={"group": [group_1.id]})
-        assert response.status_code == 200, response.content
-        assert len(response.data) == 2
-        self.assert_events_in_response(response, [event_1.event_id, event_2.event_id])
-
-        response = self.client.get(base_url, format="json", data={"group": [group_3.id]})
-        assert response.status_code == 200, response.content
-        assert len(response.data) == 1
-        self.assert_events_in_response(response, [event_4.event_id])
-
-        response = self.client.get(
-            base_url, format="json", data={"group": [group_1.id, group_3.id]}
-        )
-        assert response.status_code == 200, response.content
-        assert len(response.data) == 3
-        self.assert_events_in_response(
-            response, [event_1.event_id, event_2.event_id, event_4.event_id]
-        )
-
-        response = self.client.get(
-            base_url, format="json", data={"group": [group_1.id, group_2.id, group_3.id]}
-        )
-        assert response.status_code == 200, response.content
-        assert len(response.data) == 4
-        self.assert_events_in_response(
-            response, [event_1.event_id, event_2.event_id, event_3.event_id, event_4.event_id]
-        )
-
     def test_project_id_filter(self):
         team = self.create_team(organization=self.organization, members=[self.user])
         project = self.create_project(organization=self.organization, teams=[team])

+ 0 - 22
tests/snuba/api/endpoints/test_organization_events_stats.py

@@ -91,28 +91,6 @@ class OrganizationEventsStatsEndpointTest(APITestCase, SnubaTestCase):
         assert response.status_code == 200, response.content
         assert len(response.data["data"]) == 0
 
-    def test_groupid_filter(self):
-        response = self.client.get(
-            self.url,
-            data={
-                "start": iso_format(self.day_ago),
-                "end": iso_format(self.day_ago + timedelta(hours=2)),
-                "interval": "1h",
-                "group": self.group.id,
-            },
-            format="json",
-        )
-
-        assert response.status_code == 200, response.content
-        assert len(response.data["data"])
-
-    def test_groupid_filter_invalid_value(self):
-        url = "%s?group=not-a-number" % (self.url,)
-        with self.feature({"organizations:discover-basic": False}):
-            response = self.client.get(url, format="json")
-
-            assert response.status_code == 400, response.content
-
     def test_user_count(self):
         self.store_event(
             data={