change(api): feature flags validate condition filters

This commit is contained in:
Shekar Siri 2023-07-04 12:05:28 +02:00
parent c568027952
commit 0afa74b446
2 changed files with 9 additions and 3 deletions

View file

@ -38,7 +38,6 @@ def exists_by_name(flag_key: str, project_id: int, exclude_id: Optional[int]) ->
def update_feature_flag_status(project_id: int, feature_flag_id: int, is_active: bool) -> Dict[str, Any]:
try:
print(f"feature_flag_id: {feature_flag_id}, is_active: {is_active}")
with pg_client.PostgresClient() as cur:
query = cur.mogrify(f"""UPDATE feature_flags
SET is_active = %(is_active)s, updated_at=NOW()
@ -234,7 +233,7 @@ def prepare_conditions_values(feature_flag_data):
conditions_data[f"{k}_{i}"] = s.__getattribute__(k)
conditions_data[f"name_{i}"] = s.name
conditions_data[f"rollout_percentage_{i}"] = s.rollout_percentage
conditions_data[f"filters_{i}"] = json.dumps(s.filters)
conditions_data[f"filters_{i}"] = json.dumps([filter_.dict() for filter_ in s.filters])
return conditions_data

View file

@ -1393,11 +1393,18 @@ class FeatureFlagVariant(BaseModel):
alias_generator = attribute_to_camel_case
class FeatureFlagConditionFilterSchema(BaseModel):
is_event: bool = Field(False, const=False)
type: FilterType = Field(...)
value: List[str] = Field(default=[], min_items=1)
operator: Union[SearchEventOperator, MathOperator] = Field(...)
class FeatureFlagCondition(BaseModel):
condition_id: Optional[int] = Field(default=None)
name: str = Field(...)
rollout_percentage: Optional[int] = Field(default=0)
filters: List[dict] = Field(default=[])
filters: List[FeatureFlagConditionFilterSchema] = Field(default=[])
class Config:
alias_generator = attribute_to_camel_case