1212from sentry .api .bases .organization import OrganizationEndpoint , OrganizationPermission
1313from sentry .api .paginator import OffsetPaginator
1414from sentry .api .serializers import serialize
15- from sentry .api .serializers .models . team import TeamWithProjectsSerializer
15+ from sentry .api .serializers .models import team as team_serializers
1616from sentry .models import (
1717 AuditLogEntryEvent , OrganizationMember , OrganizationMemberTeam , Team , TeamStatus
1818)
@@ -87,6 +87,7 @@ def get(self, request, organization):
8787
8888 :pparam string organization_slug: the slug of the organization for
8989 which the teams should be listed.
90+ :param string detailed: Specify "0" to return team details that do not include projects
9091 :auth: required
9192 """
9293 # TODO(dcramer): this should be system-wide default for organization
@@ -100,6 +101,7 @@ def get(self, request, organization):
100101 ).order_by ('slug' )
101102
102103 query = request .GET .get ('query' )
104+
103105 if query :
104106 tokens = tokenize_query (query )
105107 for key , value in six .iteritems (tokens ):
@@ -109,11 +111,14 @@ def get(self, request, organization):
109111 else :
110112 queryset = queryset .none ()
111113
114+ is_detailed = request .GET .get ('detailed' , '1' ) != '0'
115+ serializer = team_serializers .TeamWithProjectsSerializer if is_detailed else team_serializers .TeamSerializer
116+
112117 return self .paginate (
113118 request = request ,
114119 queryset = queryset ,
115120 order_by = 'slug' ,
116- on_results = lambda x : serialize (x , request .user , TeamWithProjectsSerializer ()),
121+ on_results = lambda x : serialize (x , request .user , serializer ()),
117122 paginator_cls = OffsetPaginator ,
118123 )
119124
0 commit comments