(
feature_state: FeatureState,
previous: bool = False,
)
| 116 | |
| 117 | |
| 118 | def _get_feature_state_webhook_data( |
| 119 | feature_state: FeatureState, |
| 120 | previous: bool = False, |
| 121 | ) -> dict[str, Any]: |
| 122 | if previous: |
| 123 | value = feature_state.previous_feature_state_value |
| 124 | mv_values = _get_previous_multivariate_values(feature_state) |
| 125 | else: |
| 126 | value = feature_state.get_feature_state_value() |
| 127 | mv_values = list( |
| 128 | feature_state.multivariate_feature_state_values.select_related( |
| 129 | "multivariate_feature_option" |
| 130 | ).all() |
| 131 | ) |
| 132 | |
| 133 | assert feature_state.environment is not None |
| 134 | return Webhook.generate_webhook_feature_state_data( |
| 135 | feature_state.feature, |
| 136 | environment=feature_state.environment, |
| 137 | enabled=feature_state.enabled, |
| 138 | value=value, |
| 139 | identity_id=feature_state.identity_id, |
| 140 | identity_identifier=getattr(feature_state.identity, "identifier", None), |
| 141 | feature_segment=feature_state.feature_segment, |
| 142 | multivariate_feature_state_values=mv_values, |
| 143 | ) |
| 144 | |
| 145 | |
| 146 | def _get_previous_multivariate_values( |
no test coverage detected
searching dependent graphs…