Browse Source

Revert "feat(apidocs): type team serializer response (#31916)" (#31976)

This reverts commit 2aeba0d213c1b78c77c2ce0da40d5ffad566f47a.
Josh Ferge 3 years ago
parent
commit
1808be1dc6

+ 1 - 2
mypy.ini

@@ -82,8 +82,7 @@ files = src/sentry/analytics/,
         tests/sentry/utils/appleconnect/,
         src/sentry/apidocs/,
         src/sentry/api/serializers/models/user.py,
-        src/sentry/api/serializers/models/organization.py,
-        src/sentry/api/serializers/types.py
+        src/sentry/api/serializers/models/organization.py
 
 ; Enable all options used with --strict
 warn_unused_configs=True

+ 2 - 4
src/sentry/api/serializers/models/organization.py

@@ -11,8 +11,6 @@ from typing_extensions import TypedDict
 from sentry import features, roles
 from sentry.api.serializers import Serializer, register, serialize
 from sentry.api.serializers.models import UserSerializer
-from sentry.api.serializers.models.project import ProjectSerializerResponse
-from sentry.api.serializers.models.team import TeamSerializerResponse
 from sentry.app import quotas
 from sentry.auth.access import Access
 from sentry.constants import (
@@ -405,8 +403,8 @@ class DetailedOrganizationSerializer(OrganizationSerializer):
 class DetailedOrganizationSerializerWithProjectsAndTeamsResponse(
     DetailedOrganizationSerializerResponse
 ):
-    teams: list[TeamSerializerResponse]
-    projects: list[ProjectSerializerResponse]
+    teams: Any  # TODO replace with team type
+    projects: Any  # TODO replace with project type
 
 
 class DetailedOrganizationSerializerWithProjectsAndTeams(DetailedOrganizationSerializer):

+ 4 - 1
src/sentry/api/serializers/models/organization_member.py

@@ -7,7 +7,6 @@ from sentry import roles
 from sentry.api.serializers import Serializer, register, serialize
 from sentry.api.serializers.models.external_actor import ExternalActorResponse
 from sentry.api.serializers.models.user import UserSerializerResponse
-from sentry.api.serializers.types import SCIMMeta
 from sentry.models import (
     ExternalActor,
     OrganizationMember,
@@ -242,6 +241,10 @@ class SCIMEmail(TypedDict):
     type: str
 
 
+class SCIMMeta(TypedDict):
+    resourceType: str
+
+
 class OrganizationMemberSCIMSerializerOptional(TypedDict, total=False):
     """Sentry doesn't use this field but is expected by SCIM"""
 

+ 5 - 33
src/sentry/api/serializers/models/team.py

@@ -1,8 +1,5 @@
-from __future__ import annotations
-
 from collections import defaultdict
 from typing import (
-    TYPE_CHECKING,
     AbstractSet,
     Any,
     Iterable,
@@ -20,7 +17,7 @@ from typing_extensions import TypedDict
 
 from sentry import roles
 from sentry.api.serializers import Serializer, register, serialize
-from sentry.api.serializers.types import SCIMMeta, SerializedAvatarFields
+from sentry.api.serializers.models.organization_member import SCIMMeta
 from sentry.app import env
 from sentry.auth.superuser import is_active_superuser
 from sentry.models import (
@@ -34,16 +31,9 @@ from sentry.models import (
     TeamAvatar,
     User,
 )
-
-if TYPE_CHECKING:
-    from sentry.api.serializers import (
-        ExternalActorResponse,
-        OrganizationSerializerResponse,
-        ProjectSerializerResponse,
-    )
-
 from sentry.scim.endpoints.constants import SCIM_SCHEMA_GROUP
 from sentry.utils.compat import zip
+from sentry.utils.json import JSONData
 from sentry.utils.query import RangeQuerySetWrapper
 
 
@@ -98,24 +88,6 @@ def get_access_requests(item_list: Sequence[Team], user: User) -> AbstractSet[Te
     return frozenset()
 
 
-class _TeamSerializerResponseOptional(TypedDict, total=False):
-    externalTeams: list[ExternalActorResponse]
-    organization: OrganizationSerializerResponse
-    projects: ProjectSerializerResponse
-
-
-class TeamSerializerResponse(_TeamSerializerResponseOptional):
-    id: str
-    slug: str
-    name: str
-    dateCreated: str
-    isMember: bool
-    hasAccess: bool
-    isPending: bool
-    memberCount: int
-    avatar: SerializedAvatarFields
-
-
 @register(Team)
 class TeamSerializer(Serializer):  # type: ignore
     def __init__(
@@ -204,16 +176,16 @@ class TeamSerializer(Serializer):  # type: ignore
 
     def serialize(
         self, obj: Team, attrs: Mapping[str, Any], user: Any, **kwargs: Any
-    ) -> TeamSerializerResponse:
+    ) -> MutableMapping[str, JSONData]:
         if attrs.get("avatar"):
-            avatar: SerializedAvatarFields = {
+            avatar = {
                 "avatarType": attrs["avatar"].get_avatar_type_display(),
                 "avatarUuid": attrs["avatar"].ident if attrs["avatar"].file_id else None,
             }
         else:
             avatar = {"avatarType": "letter_avatar", "avatarUuid": None}
 
-        result: TeamSerializerResponse = {
+        result = {
             "id": str(obj.id),
             "slug": obj.slug,
             "name": obj.name,

+ 7 - 3
src/sentry/api/serializers/models/user.py

@@ -7,7 +7,6 @@ from typing_extensions import TypedDict
 
 from sentry import experiments
 from sentry.api.serializers import Serializer, register
-from sentry.api.serializers.types import SerializedAvatarFields
 from sentry.app import env
 from sentry.auth.superuser import is_active_superuser
 from sentry.models import (
@@ -60,6 +59,11 @@ class _Identity(TypedDict):
     dateSynced: str
 
 
+class _UserSerializerAvatar(TypedDict):
+    avatarType: str
+    avatarUuid: Optional[str]
+
+
 class _UserOptions(TypedDict):
     theme: str  # TODO: enum/literal for theme options
     language: str
@@ -70,7 +74,7 @@ class _UserOptions(TypedDict):
 
 class UserSerializerResponseOptional(TypedDict, total=False):
     identities: List[_Identity]
-    avatar: SerializedAvatarFields
+    avatar: _UserSerializerAvatar
 
 
 class UserSerializerResponse(UserSerializerResponseOptional):
@@ -176,7 +180,7 @@ class UserSerializer(Serializer):  # type: ignore
             d["flags"] = {"newsletter_consent_prompt": bool(obj.flags.newsletter_consent_prompt)}
 
         if attrs.get("avatar"):
-            avatar: SerializedAvatarFields = {
+            avatar: _UserSerializerAvatar = {
                 "avatarType": attrs["avatar"].get_avatar_type_display(),
                 "avatarUuid": attrs["avatar"].ident if attrs["avatar"].file_id else None,
             }

+ 0 - 12
src/sentry/api/serializers/types.py

@@ -1,12 +0,0 @@
-from typing import Optional
-
-from typing_extensions import TypedDict
-
-
-class SerializedAvatarFields(TypedDict):
-    avatarType: str
-    avatarUuid: Optional[str]
-
-
-class SCIMMeta(TypedDict):
-    resourceType: str