fix(api): validate variants on multi
This commit is contained in:
parent
5973fa9f41
commit
0a0f5170e5
2 changed files with 3 additions and 8 deletions
|
|
@ -93,6 +93,9 @@ def prepare_constraints_params_to_search(data, project_id, user_id):
|
|||
|
||||
|
||||
def create_feature_flag(project_id: int, user_id: int, feature_flag_data: schemas.FeatureFlagSchema) -> Optional[int]:
|
||||
if feature_flag_data.flag_type == schemas.FeatureFlagType.multi_variant and len(feature_flag_data.variants) == 0:
|
||||
raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail="Variants are required for multi variant flag")
|
||||
|
||||
validate_unique_flag_key(feature_flag_data, project_id)
|
||||
validate_multi_variant_flag(feature_flag_data)
|
||||
|
||||
|
|
|
|||
|
|
@ -1429,13 +1429,5 @@ class FeatureFlagSchema(BaseModel):
|
|||
conditions: List[FeatureFlagCondition] = Field(default=[], min_items=1)
|
||||
variants: List[FeatureFlagVariant] = Field(default=[])
|
||||
|
||||
@root_validator()
|
||||
def validate_variants(cls, values):
|
||||
flag_type = values.get('flag_type', FeatureFlagType.single_variant)
|
||||
variants = values.get('variants', [])
|
||||
if flag_type == 'multi' and len(variants) == 0:
|
||||
raise ValueError('Variants should have at least one item for flag_type "multi"')
|
||||
return values
|
||||
|
||||
class Config:
|
||||
alias_generator = attribute_to_camel_case
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue