Override update method to always assume update request is partial and create / update feature state value.
(self, request, *args, **kwargs)
| 744 | ) |
| 745 | |
| 746 | def update(self, request, *args, **kwargs): # type: ignore[no-untyped-def] |
| 747 | """ |
| 748 | Override update method to always assume update request is partial and create / update |
| 749 | feature state value. |
| 750 | """ |
| 751 | feature_state_to_update = self.get_object() |
| 752 | require_direct_state_write_for_state(feature_state_to_update) |
| 753 | feature_state_data = request.data |
| 754 | |
| 755 | # Check if feature state value was provided with request data. If so, create / update |
| 756 | # feature state value object and associate with feature state. |
| 757 | if "feature_state_value" in feature_state_data: |
| 758 | feature_state_value = self.update_feature_state_value( # type: ignore[no-untyped-call] |
| 759 | feature_state_data["feature_state_value"], feature_state_to_update |
| 760 | ) |
| 761 | |
| 762 | if isinstance(feature_state_value, Response): |
| 763 | return feature_state_value |
| 764 | |
| 765 | feature_state_data["feature_state_value"] = feature_state_value.id |
| 766 | |
| 767 | serializer = self.get_serializer( |
| 768 | feature_state_to_update, data=feature_state_data, partial=True |
| 769 | ) |
| 770 | serializer.is_valid(raise_exception=True) |
| 771 | serializer.save() |
| 772 | |
| 773 | if getattr(feature_state_to_update, "_prefetched_objects_cache", None): |
| 774 | # If 'prefetch_related' has been applied to a queryset, we need to |
| 775 | # refresh the instance from the database. |
| 776 | feature_state_to_update = self.get_object() |
| 777 | serializer = self.get_serializer(feature_state_to_update) |
| 778 | |
| 779 | return Response(serializer.data) |
| 780 | |
| 781 | def partial_update(self, request, *args, **kwargs): # type: ignore[no-untyped-def] |
| 782 | """ |
no test coverage detected