Esempio n. 1
0
    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
Esempio n. 2
0
 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"),
     )
Esempio n. 3
0
    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
Esempio n. 4
0
    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