Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refac(feat/models/get_env_flags): use environment_id instead of obj #1169

Merged
merged 1 commit into from
Jun 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 4 additions & 4 deletions api/features/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -513,7 +513,7 @@ def get_feature_state_value_type(value) -> str:
@classmethod
def get_environment_flags_list(
cls,
environment: "Environment",
environment_id: int,
feature_name: str = None,
additional_filters: Q = None,
) -> typing.List["FeatureState"]:
Expand All @@ -531,7 +531,7 @@ def get_environment_flags_list(
feature_states = cls.objects.select_related(
"feature", "feature_state_value"
).filter(
environment=environment,
environment_id=environment_id,
live_from__isnull=False,
live_from__lte=timezone.now(),
version__isnull=False,
Expand Down Expand Up @@ -562,12 +562,12 @@ def get_environment_flags_list(
return list(feature_states_dict.values())

@classmethod
def get_environment_flags_queryset(cls, environment: "Environment") -> QuerySet:
def get_environment_flags_queryset(cls, environment_id: int) -> QuerySet:
"""
Get a queryset of the latest live versions of an environments' feature states
"""

feature_states_list = cls.get_environment_flags_list(environment)
feature_states_list = cls.get_environment_flags_list(environment_id)
return FeatureState.objects.filter(id__in=[fs.id for fs in feature_states_list])

@classmethod
Expand Down
2 changes: 1 addition & 1 deletion api/features/tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,7 @@ def test_get_environment_flags_returns_latest_live_versions_of_feature_states(

# When
environment_feature_states = FeatureState.get_environment_flags_list(
environment=self.environment,
environment_id=self.environment.id,
additional_filters=Q(feature_segment=None, identity=None),
)

Expand Down
10 changes: 5 additions & 5 deletions api/features/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ def get_queryset(self):
raise PermissionDenied()

queryset = FeatureState.get_environment_flags_queryset(
environment=environment
environment_id=environment.id
)
queryset = self._apply_query_param_filters(queryset)

Expand Down Expand Up @@ -487,7 +487,7 @@ def get_queryset(self):
)

queryset = FeatureState.get_environment_flags_queryset(
environment=environment
environment_id=environment.id
)
return queryset.select_related("feature_state_value").prefetch_related(
"multivariate_feature_state_values"
Expand Down Expand Up @@ -528,7 +528,7 @@ def get(self, request, identifier=None, *args, **kwargs):
if "feature" in request.GET:

feature_states = FeatureState.get_environment_flags_list(
environment=request.environment,
environment_id=request.environment.id,
feature_name=request.GET["feature"],
additional_filters=self._additional_filters,
)
Expand All @@ -546,7 +546,7 @@ def get(self, request, identifier=None, *args, **kwargs):
else:
data = self.get_serializer(
FeatureState.get_environment_flags_list(
environment=request.environment,
environment_id=request.environment.id,
additional_filters=self._additional_filters,
),
many=True,
Expand All @@ -566,7 +566,7 @@ def _get_flags_from_cache(self, environment):
if not data:
data = self.get_serializer(
FeatureState.get_environment_flags_list(
environment=environment,
environment_id=environment.id,
additional_filters=self._additional_filters,
),
many=True,
Expand Down
4 changes: 2 additions & 2 deletions api/tests/unit/features/test_unit_features_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def test_feature_state_get_environment_flags_queryset_returns_only_latest_versio

# When
feature_states = FeatureState.get_environment_flags_queryset(
environment=environment
environment_id=environment.id
)

# Then
Expand All @@ -45,7 +45,7 @@ def test_project_hide_disabled_flags_have_no_effect_on_feature_state_get_environ

# When
feature_states = FeatureState.get_environment_flags_queryset(
environment=environment
environment_id=environment.id
)
# Then
assert feature_states.count() == 2
Expand Down