MCPcopy Create free account
hub / github.com/Flagsmith/flagsmith / update

Method update

api/features/views.py:746–779  ·  view source on GitHub ↗

Override update method to always assume update request is partial and create / update feature state value.

(self, request, *args, **kwargs)

Source from the content-addressed store, hash-verified

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 """

Calls 5

is_validMethod · 0.80
get_objectMethod · 0.45
saveMethod · 0.45

Tested by

no test coverage detected