(self, request, *args, **kwargs)
| 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], |
nothing calls this directly
no test coverage detected