Find the previous live FeatureState for a change request (legacy versioning).
(
instance: FeatureState,
)
| 87 | |
| 88 | |
| 89 | def _get_previous_feature_state_for_change_request( |
| 90 | instance: FeatureState, |
| 91 | ) -> FeatureState | None: |
| 92 | """Find the previous live FeatureState for a change request (legacy versioning).""" |
| 93 | result: FeatureState | None = ( |
| 94 | FeatureState.objects.exclude( |
| 95 | change_request_id=instance.change_request_id, |
| 96 | ) |
| 97 | .filter( |
| 98 | environment_id=instance.environment_id, |
| 99 | feature_id=instance.feature_id, |
| 100 | feature_segment=instance.feature_segment, |
| 101 | identity=instance.identity, |
| 102 | version__isnull=False, |
| 103 | live_from__lt=instance.live_from, |
| 104 | ) |
| 105 | .order_by("-live_from") |
| 106 | .select_related( |
| 107 | "feature", |
| 108 | "environment", |
| 109 | "feature_state_value", |
| 110 | "feature_segment", |
| 111 | "identity", |
| 112 | ) |
| 113 | .first() |
| 114 | ) |
| 115 | return result |
| 116 | |
| 117 | |
| 118 | def _get_feature_state_webhook_data( |
no outgoing calls
no test coverage detected
searching dependent graphs…