MCPcopy Create free account
hub / github.com/Flagsmith/flagsmith / associated_features

Method associated_features

api/segments/views.py:147–172  ·  view source on GitHub ↗
(self, request, *args, **kwargs)

Source from the content-addressed store, hash-verified

145 serializer_class=SegmentAssociatedFeatureStateSerializer,
146 )
147 def associated_features(self, request, *args, **kwargs): # type: ignore[no-untyped-def]
148 segment = self.get_object()
149
150 query_serializer = AssociatedFeaturesQuerySerializer(data=request.query_params)
151 query_serializer.is_valid(raise_exception=True)
152
153 filter_kwargs = {"feature_segment__segment": segment}
154 if environment_id := query_serializer.validated_data.get("environment"):
155 environment = Environment.objects.get(pk=environment_id)
156 filter_kwargs["environment"] = environment
157 if environment.use_v2_feature_versioning:
158 filter_kwargs["environment_feature_version__in"] = (
159 EnvironmentFeatureVersion.objects.get_latest_versions_by_environment_id(
160 environment_id
161 )
162 )
163
164 queryset = FeatureState.objects.filter(**filter_kwargs)
165
166 page = self.paginate_queryset(queryset)
167 if page is not None:
168 serializer = self.get_serializer(page, many=True)
169 return self.get_paginated_response(serializer.data)
170
171 serializer = self.get_serializer(queryset, many=True)
172 return Response(serializer.data)
173
174 @extend_schema(
175 parameters=[SegmentMembersQuerySerializer],

Callers

nothing calls this directly

Calls 7

is_validMethod · 0.80
get_objectMethod · 0.45
getMethod · 0.45
paginate_querysetMethod · 0.45

Tested by

no test coverage detected