def update(self, instance: FeatureFlag, validated_data: Dict, *args: Any, **kwargs: Any) -> FeatureFlag: request = self.context["request"] validated_key = validated_data.get("key", None) if validated_key: FeatureFlag.objects.filter(key=validated_key, team=instance.team, deleted=True).delete() self._update_filters(validated_data) instance = super().update(instance, validated_data) instance.update_cohorts() report_user_action( request.user, "feature flag updated", instance.get_analytics_metadata(), ) return instance
def _a_feature_flag_with(**kwargs) -> FeatureFlag: return FeatureFlag( deleted=kwargs.get("deleted", False), rollout_percentage=kwargs.get("rollout_percentage", None), active=kwargs.get("active", True), id=kwargs.get("id", 2), key=kwargs.get("key", "the-key"), name=kwargs.get("name", "a"), filters=kwargs.get("filters", None), created_at=parser.parse("12th April 2003"), )
def update(self, instance: FeatureFlag, validated_data: Dict, *args: Any, **kwargs: Any) -> FeatureFlag: # type: ignore request = self.context["request"] validated_key = validated_data.get("key", None) if validated_key: FeatureFlag.objects.filter(key=validated_key, team=instance.team, deleted=True).delete() self._update_filters(validated_data) instance = super().update(instance, validated_data) posthoganalytics.capture( request.user.distinct_id, "feature flag updated", instance.get_analytics_metadata(), ) return instance
def update(self, instance: FeatureFlag, validated_data: Dict, *args: Any, **kwargs: Any) -> FeatureFlag: # type: ignore request = self.context["request"] try: validated_key = validated_data.get("key", None) if validated_key: FeatureFlag.objects.filter(key=validated_key, team=instance.team, deleted=True).delete() self._update_filters(validated_data) instance = super().update(instance, validated_data) except IntegrityError: raise serializers.ValidationError("This key already exists.", code="key-exists") posthoganalytics.capture( request.user.distinct_id, "feature flag updated", instance.get_analytics_metadata(), ) return instance