| 70 | |
| 71 | |
| 72 | class FeatureValueSerializer(serializers.Serializer): # type: ignore[type-arg] |
| 73 | type = serializers.ChoiceField( |
| 74 | choices=["integer", "string", "boolean"], required=True |
| 75 | ) |
| 76 | value = serializers.CharField(required=True, allow_blank=True) |
| 77 | |
| 78 | def validate(self, data: dict) -> dict: # type: ignore[type-arg] |
| 79 | value_type = data["type"] |
| 80 | string_val = data["value"] |
| 81 | |
| 82 | if value_type == "integer": |
| 83 | try: |
| 84 | int(string_val) |
| 85 | except ValueError: |
| 86 | raise serializers.ValidationError( |
| 87 | f"'{string_val}' is not a valid integer" |
| 88 | ) |
| 89 | elif value_type == "boolean": |
| 90 | if string_val.lower() not in ("true", "false"): |
| 91 | raise serializers.ValidationError( |
| 92 | f"'{string_val}' is not a valid boolean (use 'true' or 'false')" |
| 93 | ) |
| 94 | |
| 95 | return data |
| 96 | |
| 97 | |
| 98 | class UpdateFlagSerializer(BaseFeatureUpdateSerializer): |
no outgoing calls
searching dependent graphs…